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 ( ...
随机推荐
- ActiveMQ 即时通讯服务 浅析
一. 概述与介绍 ActiveMQ 是Apache出品,最流行的.功能强大的即时通讯和集成模式的开源服务器.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provi ...
- javascript数据结构与算法--高级排序算法
javascript数据结构与算法--高级排序算法 高级排序算法是处理大型数据集的最高效排序算法,它是处理的数据集可以达到上百万个元素,而不仅仅是几百个或者几千个.现在我们来学习下2种高级排序算法-- ...
- ASP.NET 系统对象 Request(一)
Request对象 用来获取客户端在请求一个页面或传送一个Form是提供的所有信息.它包括用户的HTTP变量.能够识别的浏览器.存储客户端的Cookie信息和请求地址等. Request对象是Syst ...
- Proj.4 API 中文参考
ProjAPI https://github.com/OSGeo/proj.4/wiki/ProjAPI Tom Kralidis在2015年5月27日编辑此页·修订4 简介 执行pj_init()选 ...
- 【SCOI2005】 最大子矩阵 BZOJ 1084
Description 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. Input 第一行为n,m,k(1≤n≤100,1≤m≤2 ...
- JavaScript刷新页面n种方法
window.location.href 属性 window.location.href=window.location.href;//刷新当前页面 asp.net 或 asp 利用此功能刷新页面 R ...
- 【Docker】Docker主机为什么ip nets 查不到网络空间
创建Docker容器后本来应该有新的命名空间(如果有独立网络的话),那么可以通过 ip netns 命令查看到命名空间,但是实际上却看不到. 查过资料才发现,ip netns 只能查看到 /var/r ...
- C#动态创建和动态使用程序集、类、方法、字段等
C#动态创建和动态使用程序集.类.方法.字段等 分类:技术交流 (3204) (3) 首先需要知道动态创建这些类型是使用的一些什么技术呢?其实只要相关动态加载程序集呀,类呀,都是使用反射,那么动 ...
- 在VS中建立.aspx,.cs,.designer.cs之间的级联关系
<Compile Include="..\Admin\Actions.aspx.cs"> <DependentUpon>Actions.aspx</D ...
- Java内部类详解
Java内部类详解 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉.原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法.今天我们就 ...