HttpFileCollection类
2017-08-06 15:20
176 查看
最近在学HttpRequest类搞文件上传的时候看到Request.Files返回了HttpFileCollection 这个类的一个对象,这个类用于获取浏览器上传的文件集合,在文件上传的时候可以通过这个集中获取上传的文件内容,文件名等信息。以下来详细了解一下这个类。
以下给出常用属性与公用方法。
1、属性
AllKeys:获取一个字符串数组,该数组包含文件集合中所有成员的键名key,说白了就是所有<input type=”file” name=”xx”>的name的值组成的字符串数组。
Count :获取包含在 NameObjectCollectionBase 实例中的键/值对的数目。说白了就是<input type=”file” name=”xx”>的数量。
Item :表示可通过索引访问。说白了就是这个对象里的集合可以直接用索引访问,包括数字索引与key名访问。
如:HttpFileCollection FileCollect = request.Files;
FileCollect[0]或request.Files[0]与Get一样,返回的是HttpPostedFile 对象。关于HttpPostedFile这个类可以查看http://www.cnblogs.com/kissdodog/archive/2013/01/12/2857833.html
Keys: 获取NameObjectCollectionBase.KeysCollection 实例,该实例包含 NameObjectCollectionBase 实例中的所有键。
2、方法
CopyTo:从指定的数组索引处开始,将文件集合的成员复制到 Array 中。
Get:可以通过索引或key名称读取,从文件集合中返回一个单独的 HttpPostedFile 对象。重载此属性以允许按key名称或数字索引来检索对象。
GetHashCode:用作特定类型的哈希函数。GetHashCode 适合在哈希算法和数据结构(如哈希表)中使用。
GetKey :返回具有指定数字索引的 HttpFileCollection 成员名称。
来看代码:
注意表单提交的编码方式为enctype="multipart/form- data"
以下给出常用属性与公用方法。
1、属性
AllKeys:获取一个字符串数组,该数组包含文件集合中所有成员的键名key,说白了就是所有<input type=”file” name=”xx”>的name的值组成的字符串数组。
Count :获取包含在 NameObjectCollectionBase 实例中的键/值对的数目。说白了就是<input type=”file” name=”xx”>的数量。
Item :表示可通过索引访问。说白了就是这个对象里的集合可以直接用索引访问,包括数字索引与key名访问。
如:HttpFileCollection FileCollect = request.Files;
FileCollect[0]或request.Files[0]与Get一样,返回的是HttpPostedFile 对象。关于HttpPostedFile这个类可以查看http://www.cnblogs.com/kissdodog/archive/2013/01/12/2857833.html
Keys: 获取NameObjectCollectionBase.KeysCollection 实例,该实例包含 NameObjectCollectionBase 实例中的所有键。
2、方法
CopyTo:从指定的数组索引处开始,将文件集合的成员复制到 Array 中。
Get:可以通过索引或key名称读取,从文件集合中返回一个单独的 HttpPostedFile 对象。重载此属性以允许按key名称或数字索引来检索对象。
GetHashCode:用作特定类型的哈希函数。GetHashCode 适合在哈希算法和数据结构(如哈希表)中使用。
GetKey :返回具有指定数字索引的 HttpFileCollection 成员名称。
来看代码:
注意表单提交的编码方式为enctype="multipart/form- data"
public ActionResult GetForm() { HttpRequest request = System.Web.HttpContext.Current.Request; HttpFileCollection FileCollect = request.Files; //主角登场,获取成HttpFileCollection对象集合,集合中包含了上传所有内容,所有的<inut type="file">上传的内容都在集合里了 if (FileCollect.Count > 0) //如果集合的数量大于0 { foreach (string str in FileCollect) { HttpPostedFile FileSave = FileCollect[str]; //用key获取单个文件对象HttpPostedFile string imgName = DateTime.Now.ToString("yyyyMMddhhmmss"); string imgPath = "/" + imgName + FileCollect.Get(str).FileName; string AbsolutePath = Server.MapPath(imgPath); FileSave.SaveAs(AbsolutePath); //将上传的东西保存 Response.Write("<img src='" + imgPath + "'/>"); } } return Content("键值对数目:" + FileCollect.Count); }
相关文章推荐
- HttpFileCollection类
- 太晚睡觉等于自杀http://blog.csdn.net/augusdi/article/details/5440987
- Xcode7 使用NSURLSession发送HTTP请求的问题
- http://tech.ccidnet.com/art/3737/20080903/1562491_1.html(java环境变量)
- HttpURLConnection用法详解
- RHCE6 Preperation (8) - http, virtual host, http limited access
- HTTPS和HTTP的区别
- HTTP和HTTPS有什么区别? 什么是SSL证书?使用ssl证书优势?
- http://www.importnew.com/20307.html
- ie http 中文传参 400错误
- HTTP协议的8种请求类型
- HTTP中header的信息讲解以及设置
- http://subclipse.tigris.org/
- 访问请转到 http://hi.baidu.com/yuyu8848
- 介绍 devfs 本文来自: (www.91linux.com) 详细出处参考:http://www.91linux.com/html/article/kernel/20090102/15236.html
- Rose 2003在Vista安装(转:http://blog.csdn.net/qi890402/archive/2010/09/27/5910007.aspx)
- xmlHTTPRequest
- iOS手势操作,拖动,轻击,捏合,旋转,长按,自定义(http://www.cnblogs.com/huangjianwu/p/4675648.html)
- HTTP与HTTPS的区别
- [转载]为什么开发人员工作10多年了还会迷茫?没有安全感?@http://bbs.csdn.net/topics/390458270