ASP.NET 使用Request.Files获取<input type=file/>上传文件
来源:互联网 发布:淘宝卖家评论回复 编辑:程序博客网 时间:2024/05/17 02:09
我们知道,对于 ASP.NET 的服务器端控件 FileUpload 来说,可以直接用 FileUpload1.PostedFile 这样的代码来获取上传文件框的文件。
但如果我们没有用 FileUpload,而直接用的 <input type="file" name="pic1" /> 这样的 HTML 控件,ASP.NET 又如何取这些内容呢?
用 Request.Files。
Request.Files.Count 客户端传了多少文件过来。此时不论我们使用的是服务端控件还是 HTML 控件,因为到了客户端都是一样的 <input type="file";另外,即使文件上传框中没有选择文件,都可能会当作上传了无内容的文件(视客户端浏览器)。
Request.Files[i].ContentLength 获取上传文件的大小,以字节为单位。
Request.Files[i].ContentType 获取客户端发送的文件的 MIME 内容类型。
Request.Files[i].FileName
Request.Files[i].InputStream
Request.Files[i].SaveAs(string filename)
上面的 Request.Files[i],也可以是 Request.Files[name]。
在类中使用?
在类中,我们这样用:
System.Web.HttpContext.Current.Request.Files
用request.files实现异文件上传(开放式上传)
一直以为只有file框,只有在使用了runat="server"后才可以实现上传文件的功能。
如:
<form id="form1" method="post" runat="server">
<input id="File1" type="file" name="File1"/>
<input id="Submit1" type="submit" value="submit" />
</form>
其实,这只是一个误区,在.net中file框也可以不使用runat="server"也可以实现上传文件的功能。如:
<form id="form1" method="post" enctype="multipart/form-data" action="d.aspx">
<input id="File1" type="file" name="File1"/>
<input id="Submit1" type="submit" value="submit" />
</form>
从代码可以看出区别。如果file框没有加runat="server",则form里一定要加上
enctype="multipart/form-data"这样才可以实现上传文件到服务器。
同时可以看到第一个form中使用了runat="server"。而第二个没有。其实使用了server和没有使用
runat="server"是有区别的.使用了runat="server"的form编译后,action必定是指向本身的网页。而没
有加runat="server"的form可以指向一个网页。这样就可以实现异文件上传------与asp的上传方法相似
,但是代码就简便许多。
异文件上传的处理代码如下:
d.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class d : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Files.Count>0)
{
HttpPostedFile f = Request.Files[0];
f.SaveAs(Server.MapPath("002.jpg"));
}
}
}
结论:request.files可以实现文件上传的两种方法。并且文件上传的两种方法,在代码页上是没有什么
区别的,重点是在在设计器上。关闭式(runat=server)方法,file框一定要加上runat=server,form也
是一定要加上runat=server。开放式(submit form)则file框和form都不加runat=server,即写成纯html
代码!!!(所以在form中加入method=post enctype="multipart/form-data")。
使用表单文件域(input type=”file”)时,在PostBack中使用Request.Files获取不到文件。研究了半天,发现在input标签中使用runat=”server”后,是能够正常获取的。但是为了前端的元素ID不被修改,我尽可能不使用runat=”server”。
网上查阅了一下,最终让我找到了原因。用了高级货之后,忘本了呵呵。
要让form能够传递文件的话,必须要在form标签中加入enctype=”multipart/form-data”
<form enctype="multipart/form-data" ID="form1" runat="server">
<input type="file" name="filename" />
</form>
在input 中使用了runat=”server”,那么ASP.NET会自动处理这些事情,而如果我们要自己DIY,就得记住这些啦!
但如果我们没有用 FileUpload,而直接用的 <input type="file" name="pic1" /> 这样的 HTML 控件,ASP.NET 又如何取这些内容呢?
用 Request.Files。
Request.Files.Count 客户端传了多少文件过来。此时不论我们使用的是服务端控件还是 HTML 控件,因为到了客户端都是一样的 <input type="file";另外,即使文件上传框中没有选择文件,都可能会当作上传了无内容的文件(视客户端浏览器)。
Request.Files[i].ContentLength 获取上传文件的大小,以字节为单位。
Request.Files[i].ContentType 获取客户端发送的文件的 MIME 内容类型。
Request.Files[i].FileName
Request.Files[i].InputStream
Request.Files[i].SaveAs(string filename)
上面的 Request.Files[i],也可以是 Request.Files[name]。
在类中使用?
在类中,我们这样用:
System.Web.HttpContext.Current.Request.Files
用request.files实现异文件上传(开放式上传)
一直以为只有file框,只有在使用了runat="server"后才可以实现上传文件的功能。
如:
<form id="form1" method="post" runat="server">
<input id="File1" type="file" name="File1"/>
<input id="Submit1" type="submit" value="submit" />
</form>
其实,这只是一个误区,在.net中file框也可以不使用runat="server"也可以实现上传文件的功能。如:
<form id="form1" method="post" enctype="multipart/form-data" action="d.aspx">
<input id="File1" type="file" name="File1"/>
<input id="Submit1" type="submit" value="submit" />
</form>
从代码可以看出区别。如果file框没有加runat="server",则form里一定要加上
enctype="multipart/form-data"这样才可以实现上传文件到服务器。
同时可以看到第一个form中使用了runat="server"。而第二个没有。其实使用了server和没有使用
runat="server"是有区别的.使用了runat="server"的form编译后,action必定是指向本身的网页。而没
有加runat="server"的form可以指向一个网页。这样就可以实现异文件上传------与asp的上传方法相似
,但是代码就简便许多。
异文件上传的处理代码如下:
d.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class d : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Files.Count>0)
{
HttpPostedFile f = Request.Files[0];
f.SaveAs(Server.MapPath("002.jpg"));
}
}
}
结论:request.files可以实现文件上传的两种方法。并且文件上传的两种方法,在代码页上是没有什么
区别的,重点是在在设计器上。关闭式(runat=server)方法,file框一定要加上runat=server,form也
是一定要加上runat=server。开放式(submit form)则file框和form都不加runat=server,即写成纯html
代码!!!(所以在form中加入method=post enctype="multipart/form-data")。
使用表单文件域(input type=”file”)时,在PostBack中使用Request.Files获取不到文件。研究了半天,发现在input标签中使用runat=”server”后,是能够正常获取的。但是为了前端的元素ID不被修改,我尽可能不使用runat=”server”。
网上查阅了一下,最终让我找到了原因。用了高级货之后,忘本了呵呵。
要让form能够传递文件的话,必须要在form标签中加入enctype=”multipart/form-data”
<form enctype="multipart/form-data" ID="form1" runat="server">
<input type="file" name="filename" />
</form>
在input 中使用了runat=”server”,那么ASP.NET会自动处理这些事情,而如果我们要自己DIY,就得记住这些啦!
- ASP.NET 使用Request.Files获取<input type=file/>上传文件
- c# asp.net Ext file fileUpload文件上传后台Request.Files获取不到解决办法
- Asp.net上传文件Request.files获取不到文件
- 使用input type="file"上传文件
- asp.net/c# 用<input type="file" />实现文件上传,multipart/form-data
- asp.net/c# 用<input type="file" />实现文件上传,multipart/form-data
- Asp.net网站中 js通过input type="file" 上传文件
- input type="file" 上传文件,若是flv格式,则截取保存一张图片asp.net
- [置顶]关于使用input type=file 标签上传文件的注意细节(上传文件 无法获取文件 问题)
- 使用input type=file 上传文件时需注意
- 使用input type=file 上传文件时需注意
- 使用input type=file 上传文件时需注意
- 使用input type=file 上传文件时需注意
- 使用<input type="file">实现文件上传
- input type=file 服务器端上传文件
- <input type="file"/> 文件上传
- <input type="file">定义样式并获取上传文件路径及指定文件类型
- jquery获取input type=file的选中上传文件名
- Objective-C学习——NSString字符串的那些事儿(三)
- 在linux中限制用户ftp访问权限
- 12-百钱买百鸡(算法)
- ios uitableview里点击界面退出键盘的实现和一些疑惑
- vsFTPd 服务器初学者指南
- ASP.NET 使用Request.Files获取<input type=file/>上传文件
- 遍历数据表
- live555 64bit
- 谁说ios不可以自定义控件?(可用xib拖动的)
- textarea的maxlength和wrap属性
- 再谈Jquery Ajax方法传递到action
- iOS AvPlayer AvAudioPlayer音频的后台播放问题
- IOS学习——IOS上MediaPlayer framework实现视频播放
- 百度两年经历:从学生到程序员【转】