首页 > 代码库 > HttpPostedFile类的使用方法
HttpPostedFile类的使用方法
HttpPostedFile注意事项:
(1) HttpPostedFile提供对客户端已上载的单独文件的访问。
(2) 对于客户端已上载的文件,最好先保存到服务器,再访问;而不是直接访问。
(3) HttpPostedFile file = Request.Files[0]; 变量file只是对文件的引用,对file的任何操作都直接影响到已经上载的文件。
(4) 使用StreamReader 读取文件后,要调用Close方法关闭文件流,否则SaveAs相同文件名时,提示文件被占用。
下面通过两种方式访问已经上载的文件。
一、先保存到服务器,再访问。
1,新建一个test.aspx页面,前台代码如下:
<form runat="server" method="post" enctype="multipart/form-data"> <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="btnAdd" runat="server" Text="上传" /> </form>
效果图如下:
2,后台代码如下:
protected void Page_Load(object sender, EventArgs e) { //(0) 判断文件是否存在 if (Request.Files.Count < 1) { return; } SaveToRead(); } // 1,先保存,再读取文件 public void SaveToRead() { // (1)获取上传的文件,保存到 应用程序基目录 HttpPostedFile file = Request.Files[0]; string sFileName = System.AppDomain.CurrentDomain.BaseDirectory + "上传文件.txt"; file.SaveAs(sFileName); // (2)从服务器上读取文件 StreamReader reader = new StreamReader(sFileName, Encoding.GetEncoding("GB2312")); string temp = reader.ReadLine(); Response.Write(temp); // (3)关闭文件流 reader.Close(); // (4)其他函数需要读取时,从新加载文件 reader = new StreamReader(sFileName, Encoding.GetEncoding("GB2312")); temp = reader.ReadLine(); Response.Write(temp); }
3,运行效果图如下:
二、 直接访问客户端上载的文件
1, 前台代码不变,后台添加如下代码:
protected void Page_Load(object sender, EventArgs e) { //(0) 判断文件是否存在 if (Request.Files.Count < 1) { return; } SaveToRead(); ReadFile(); } //2,直接读取上传的文件 public void ReadFile() { //(1)将上传的文件同时赋值给file1和file2 HttpPostedFile file1 = Request.Files[0]; HttpPostedFile file2 = Request.Files[0]; //(2)判断文件为空的方法 if (file1 == null || file1.ContentLength == 0 || string.IsNullOrEmpty(file1.FileName)) { //文件为空,写入日志 Response.Write("文件为空"); return; } //(3)获取文件流的方法 Stream stream = file1.InputStream; StreamReader reader = new StreamReader(stream, Encoding.GetEncoding("GB2312")); //(4) 读取文件内容的方法 string temp = reader.ReadLine(); //(5) 关闭文件流 reader.Close(); //(6) 查看file1和file2的长度均为0 Response.Write("file1的长度:" + file1.ContentLength + "; file2的长度:" + file2.ContentLength); }
2, 运行效果如下:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。