FileUpload控件要与Button、LinkButton、ImageButton配合使用
FileUpload控件的方法及属性:
1、SaveAs("要上传到服务器的绝对路径")方法:用来上传文件
注:一般使用Server.MapPath()方法进行相对路径与绝对路径之间的转换。
2、FileName属性:要上传文件的文件名,不带路径
3、PostedFile.ContentLength属性:获得上传文件的字节长度,除以1024,得到KB
<一>最简单的上传
//点击上传
protected void Button1_Click(object sender, EventArgs e)
{
string path=Server.MapPath("uploads/aaa.doc");//需要路径映射
FileUpload1.SaveAs(path);//此方法需要绝对路径
}
问题:所有上传文件都叫同一个名
》》优化一:使用FileUpload的FileName属性,获取上传文件的客户端的名字
string fileName = FileUpload1.FileName;//获取文件的客户端的名字
string path = Server.MapPath("uploads/" + fileName);
FileUpload1.SaveAs(path);
问题:如果不同用户在同一时间上传同一文件名的文件,应该避免文件的覆盖
》》优化二:解决不同用户同一时间上传同一文件名的情况(在文件名中使用用户名加以区分)
if (Session["user"] != null)
{
string fileName = DateTime.Now.ToString("yyyyMMddmmss")+Session["user"].ToString()+ FileUpload1.FileName;
//在文件名中加上时间和用户名
string path = Server.MapPath("uploads/" + fileName);
FileUpload1.SaveAs(path);
}
else
{
Response.Redirect("Default2.aspx");
}
问题:上传文件大于4M,程序会报错。系统默认的文件最大为4M,也就是4096K
》》优化三:扩容
在Web.Config中配置上传请求的最大长度
<system.web>
<compilation debug="true" targetFramework="4.5.1"/>
<httpRuntime maxRequestLength="10240" />//扩容也不要太大,空值在10M以内为佳
</system.web>
<二、多文件上传到服务器硬盘>
#简单实现:
思路:遍历页面Form中的每个控件,判断是否是FileUpload,如果是的话就把她强制转化成FileUpload类型,再按单文件上传逐个上传即可
if (Session["user"] != null)
{
int i = 1;//文件上传的流水号
foreach (Control ctrl in this.form1.Controls)//遍历this(这个页面)中的form1(表单1这个类中的)Controls(所有控件),其中包含了按钮之类,要排除在外
{
if (ctrl is FileUpload)//判断是否是FileUplaod类型
{
FileUpload file = (FileUpload)ctrl;//如果是FileUpload类型,就强制转化一下
//以下还是上传单文件的步骤
string fileName = DateTime.Now.ToString("yyyyMMddmmss") + Session["user"].ToString() + i.ToString("0000") + file.FileName;
string path = Server.MapPath("uploads/" + fileName);
FileUpload1.SaveAs(path);
}
i++;//自增
}
问题:没有选择上传的文件也会在服务器端生成一个0KB的文件如图
》》优化:把没有选择上传的给跳过去
if (Session["user"] != null)
{
int i = 1;//文件上传的流水号
foreach (Control ctrl in this.form1.Controls)//遍历this(这个页面)中的form1(表单1这个类中的)Controls(所有控件),其中包含了按钮之类,要排除在外
{
if (ctrl is FileUpload)//判断是否是FileUplaod类型
{
FileUpload file = (FileUpload)ctrl;//如果是FileUpload类型,就强制转化一下
if (file.HasFile)//判断是否有文件,没有就跳过
{
//以下还是上传单文件的步骤
string fileName = DateTime.Now.ToString("yyyyMMddmmss") + Session["user"].ToString() + i.ToString("0000") + file.FileName;
string path = Server.MapPath("uploads/" + fileName);
FileUpload1.SaveAs(path);
}
}
i++;//自增
}
WebForm之FileUpload控件(文件上传)的更多相关文章
-
asp.net+bootstrap上传图片+FileUpload控件文件上传下载
ps:我数据库使用的pgsql,看个人修改. 代码asp.net 的,使用了mootools框架,里面包含了bootstrap上传图片,查看预览,还加了个上传任意文件的FileUpload.(界面随便 ...
-
20160620001 FileUpload控件获取上传文件的路径
参考地址: http://bbs.csdn.net/topics/350051517 —————————————————————————————— 用js实现 <%@ Page Language ...
-
swfupload控件文件上传大小限制设置
swfupload控件,是我在开发过程中用到的上传文件的控件,非常实用和方便.但最近碰到一些问题,解决之后进行一下整理. 因为用户上传文件的大小限制增加,导致原本上传控件时,文件的大小需要进行调整和限 ...
-
HTML5中的input type为file控件限制上传文件类型及扩展
简单介绍 input file控件限制上传文件类型如下:1.文件类型中间用,分开:2.html和htm这样的要写成两个: 3实例: <input type="file" na ...
-
如何使用Python调用AutoIt来实现Flash控件的上传功能
先看一段代码 upload.au3(这个后缀autoit3的格式): ;等待出现title为数据采集-军课网-MozillaFirefox的浏览器窗口 WinWait("数据采集 - XX网 ...
-
dwz+jquery+fileupload+springmvc实现文件上传 及图片预览
1 前台jsp:文件的上传利用了iframe实现局部刷新功能.使用了apache的fileupload组件,用到的jar: commons-fileupload.jar,commons-io.jarD ...
-
框架中如何根据fileupload工具包实现文件上传功能
工具包 Apache-fileupload.jar – 文件上传核心包. Apache-commons-io.jar – 这个包是fileupload的依赖包.同时又是一个工具包. 代码 servle ...
-
FileUpload框架实现文件上传(多个文件)和下载
一.文件上传: 对于大文件执行下面的代码之间卡死 package com.example.web.service.servlet; import java.io.File; import java.i ...
-
模拟文件上传(二):使用apache fileupload组件进行文件上传
其中涉及到的jar包: jsp显示层: <%@ page language="java" import="java.util.*" pageEncodin ...
随机推荐
-
TurboDemo软件使用教程:视频编辑
视频软件TurboDemo中不仅可以快速的捕捉屏幕,而且可以对视频进行编辑,本文来详细的了解一下这个步骤. 当你完整屏幕捕捉和录制后,点击系统托盘上的箭头或点击键盘上的“print screen”键之 ...
-
比较 http连接 vs socket连接
http连接 :短连接,客户端,服务器三次握手建立连接,服务器响应返回信息,连接关闭,一次性的socket连接:长连接,客户端,服务器三次握手建立连接不中断(通过ip地址端口号定位进程)及时通讯,客户 ...
-
3月3日(6) Climbing Stairs
原题 Climbing Stairs 求斐波那契数列的第N项,开始想用通项公式求解,其实一个O(n)就搞定了. class Solution { public: int climbStairs(int ...
-
数据持久层框架iBatis, Hibernate 与 JPA 比较
在本文中我们介绍并比较两种最流行的开源持久框架:iBATIS和Hibernate,我们还会讨论到Java Persistence API(JPA).我们介绍每种解决方案并讨论其所规定的品质,以及在广泛 ...
-
Python入门学习
1.访问www.python.org/download下载并安装Python3版本 2.命令行输入python启动交互式命令shell,>>>代表当前行用户的输入 3.基本算数运算: ...
-
一名合格的Web安全工程师之成长路径
最近经常听到公司的招聘专员反馈应聘者简历“水分”太大,尤其是技术岗位,例如Web安全工程师,明明是初级阶段的菜鸟,就敢写资深Web安全工程师:在几个项目做一些基础打杂的工作,就敢写带过团队,项目经验丰 ...
-
[maven] dependency标签理解
在maven pom.xml文件中最多的就是dependency标签,我们用maven管理我们项目的依赖.这篇文章简单介绍dependency标签内部各个子标签的意义. 下面是dependency标签 ...
-
C# 读取Excel和DBF文件
//获excel中多个sheet中的数据 /// <summary> /// 读取导入Excel文件内容 /// </summary> /// <param name=& ...
-
自制操作系统Antz -- 系列文章
自制操作系统Antz day10——实现shell(上) AntzUhl 2018-10-10 16:25 阅读:192 评论:0 Linux内核源码分析 day01——内存寻址 AntzUhl ...
-
ajax, jQuery, jQueryeasyUI
1.ajax与jQueryajax是jquery库里面的一个被封装好的函数,可以拿来直接使用.没有jquery的话,ajax的使用就得用原生的javascript去写,比较麻烦. 2.jQuery E ...