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 < )
{
return;
}
SaveToRead();
}
// 1,先保存,再读取文件
public void SaveToRead()
{
// (1)获取上传的文件,保存到 应用程序基目录
HttpPostedFile file = Request.Files[];
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 < )
{
return;
}
SaveToRead();
ReadFile();
}
//2,直接读取上传的文件
public void ReadFile()
{
//(1)将上传的文件同时赋值给file1和file2
HttpPostedFile file1 = Request.Files[];
HttpPostedFile file2 = Request.Files[];
//(2)判断文件为空的方法
if (file1 == null || file1.ContentLength == || 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, 运行效果如下:

HttpPostedFile类的使用方法的更多相关文章
- .NET中那些所谓的新语法之二:匿名类、匿名方法与扩展方法
开篇:在上一篇中,我们了解了自动属性.隐式类型.自动初始化器等所谓的新语法,这一篇我们继续征程,看看匿名类.匿名方法以及常用的扩展方法.虽然,都是很常见的东西,但是未必我们都明白其中蕴含的奥妙.所以, ...
- 第6章 Java类中的方法
1.如何定义java的方法 什么是方法:方法使用来解决一类问题的代码集合,是一个功能模块在类中定义个方法的方法是: 访问修饰符 返回值类型 方法名(参数列表){ 方法体 } 1.访问修饰符,是限制该方 ...
- python 类属性与方法
Python 类属性与方法 标签(空格分隔): Python Python的访问限制 Python支持面向对象,其对属性的权限控制通过属性名来实现,如果一个属性有双下划线开头(__),该属性就无法被外 ...
- Java Native Interfce三在JNI中使用Java类的普通方法与变量
本文是<The Java Native Interface Programmer's Guide and Specification>读书笔记 前面我们学习了如何在JNI中通过参数来使用J ...
- 22.编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表。然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法showB输出大写的英文字母表。最后编写主类C,在主类的main方法 中测试类A与类B。
22.编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表.然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法sh ...
- Java的cmd配置(也即Java的JDK配置及相关常用命令)——找不到或无法加载主类 的解决方法
Java的cmd配置(也即Java的JDK配置及相关常用命令) ——找不到或无法加载主类 的解决方法 这段时间一直纠结于cmd下Java无法编译运行的问题.主要问题描述如下: javac 命令可以正 ...
- java 27 - 6 反射之 通过配置文件运行类中的方法
在以前,如果我们想要调用一个类中的方法,只能这样子: 例: 有Cat和Dog两个类,里面有eat和run两个成员方法: public class Dog { public void eat() { S ...
- Python的高级特性8:你真的了解类,对象,实例,方法吗
Python的高级特性1-7系列是本人从Python2过渡3时写下的一些个人见解(不敢说一定对),接下来的系列主要会以类级为主. 类,对象,实例,方法是几个面向对象的几个基本概念,其实我觉得很多人并不 ...
- Properties类的使用方法
它提供了几个主要的方法: 1. getProperty ( String key),用指定的键在此属性列表中搜索属性.也就是通过参数 key ,得到 key 所对应的 value. 2. load ( ...
随机推荐
- Bash 里的转义序列
在 Bash 里,一共有五个地方支持反斜杠开头的转义序列,包括两个内部命令 echo 和 printf 的参数里,字符串语法 $'...' 里,还有四个提示符变量 PS1-PS4 里,以及在 Read ...
- mysql安装配置
MySQL 是最流行的关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言. MySQL由于其体积小.速度快 ...
- 与或左移右移操作在ARM寄存器配置中的作用
逻辑运算: 与运算&:与0清零 清零用与运算 或运算 |:或1置一 置一用或运算 异或 ^:不同为1 /*****单个寄存器清零置一*************************** ...
- table td 文字超出显示省略号
.autocut { width:250px; overflow:hidden; white-space:nowrap; text-overflow:ellip ...
- MySQL show processlist命令详解
show processlist; 命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这个命令. 方式1:进入mysql/bin目录下输入mysqladmin proc ...
- Alpha版本十天冲刺——Day 10
站立式会议 最后一天,很高兴我们做出了跟预期差不多的版本,实现了基本功能,虽然还有一些bug,但是下一阶段我们会继续加油! 会议总结 队员 今天完成 遇到的问题 感想 鲍亮 功能细节更改 我的手机运行 ...
- windows vim修改字体
C:\Program Files (x86)\Vim\vim74 目录下,在vimrc_example.vim和mswin.vim中添加: set guifont=Consolas:h11
- [Asp.net MVC]Asp.net MVC5系列——在模型中添加验证规则
目录 概述 在模型中添加验证规则 自定义验证规则 伙伴类的使用 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5 ...
- word如何插入目录
word如何插入目录 百度经验:jingyan.baidu.com 在写文章的时候我们需要插入目录,如果自己手动添加目录会非常麻烦,以后修改文章的时候还得修改目录的页码,还好Word中有自动添加目录的 ...
- 在react native用到的javascript 的一些关键知识(整理中)
发现了一个讲解javascript的好网站,分享一下,讲的非常棒! 注意,这些文章都可以选择中文进行阅读! 下面这个连接是关于prototype的: https://developer.mozilla ...