asp.net/c# 用<input type="file" />实现文件上传,multipart/form-data
2013-08-03 17:19
1076 查看
<input type="file" />我们常用的上传文件的工具(控件),它和 <asp:FileUpload ID="FileUpload1" runat="server" />不一样,在后台不能直接获取到,不能像
this.FileUpload1.PostedFile……那样去获取
而有时我们必须使用<input type="file" />,如动态给页面添加好多个<input type="file" />,我们后台要怎么获取呢
后台代码:
写成这样,我们发现每次获得的_file.Count 都是0
我们需要为form加上enctype="multipart/form-data"的属性
表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了
multipart/form-data,才能完整的传递文件数据。
修改代码如下:
后台获取到了Request.Files
我们为form 加上runat="server" action可以指向其他页面
总结:
1.form 必须有runat="server"标记,
2.form 必须有enctype="multipart/form-data"标记,
3.<input type="file" />的runat="server"标记可选
烟台社区:http://ythome.cn
this.FileUpload1.PostedFile……那样去获取
而有时我们必须使用<input type="file" />,如动态给页面添加好多个<input type="file" />,我们后台要怎么获取呢
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <form runat="server" id="form1" method="post" > <input name="f" type="file" /> <input name="s" type="submit" /> </form> </body> </html>
后台代码:
//客户端上传的文件 System.Web.HttpFileCollection _file = System.Web.HttpContext.Current.Request.Files; if (_file.Count > 0) { //文件大小 long size = _file[0].ContentLength; //文件类型 string type = _file[0].ContentType; //文件名 string name = _file[0].FileName; //文件格式 string _tp = System.IO.Path.GetExtension(name); if (_tp.ToLower() == ".jpg" || _tp.ToLower() == ".jpeg" || _tp.ToLower() == ".gif" || _tp.ToLower() == ".png" || _tp.ToLower() == ".swf") { //获取文件流 System.IO.Stream stream = _file[0].InputStream; //保存文件 string saveName = DateTime.Now.ToString("yyyyMMddHHmmss") + _tp; string path = DataFactory.WFile.FileUploadPath + "/upload/area/" + saveName; _file[0].SaveAs(path); } }
写成这样,我们发现每次获得的_file.Count 都是0
我们需要为form加上enctype="multipart/form-data"的属性
表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了
multipart/form-data,才能完整的传递文件数据。
修改代码如下:
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <form runat="server" id="form1" method="post" enctype="multipart/form-data"> <input name="f" type="file" /> <input name="s" type="submit" /> </form> </body> </html>
后台获取到了Request.Files
我们为form 加上runat="server" action可以指向其他页面
总结:
1.form 必须有runat="server"标记,
2.form 必须有enctype="multipart/form-data"标记,
3.<input type="file" />的runat="server"标记可选
烟台社区:http://ythome.cn
相关文章推荐
- asp.net/c# 用<input type="file" />实现文件上传,multipart/form-data
- HTML <input type="file">上传文件——结合asp.net的一个文件上传示例
- HTML <input type="file">结合asp.net的一个文件上传示例
- 【asp】web做文件上传,需要在表单用上 <form Enctype="multipart/form-data"/>
- js 实现 <input type="file" /> 文件上传
- ASP------<input type="file"/>上传文件
- 使用<input type="file">实现文件上传
- [置顶] js 实现 <input type="file" /> 文件上传
- Android:让WebView支持<input type="file"…>元素,实现文件上传
- 选择多个文件上传<input type="file" id="myfileinput" multiple>
- struts2开发环境中,enctype="multipart/form-data"上传文件时,request.getInputStream()为null的原因(转http://topic.csdn.net/u/20101210/11/78454a19-7
- struts中post方式上传文件,enctype="multipart/form-data",request.getParameter("file") 是null的问题分析
- Asp.net网站中 js通过input type="file" 上传文件
- 将通过<input type="file">上传的txt文件存储在localStorage,提取并构建File对象
- asp.net文件上传用到html的file控件,在使用母版页Master,更改form的Enctype=multipart/form-data的方法
- <input id="File_Audio" type="file" /> 一步到位上传图片、音频等文件
- <input type="file">定义样式并获取上传文件路径及指定文件类型
- <input type="file">定义样式并获取上传文件路径及指定文件类型
- input file控件限制上传文件类型 网页上添加一个input file HTML控件: 1 <input id="File1" type="file" /> 默认是这样的,所有文件类
- input type="file" 上传文件,若是flv格式,则截取保存一张图片asp.net