C军

不玩博客了!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  496 随笔 :: 0 文章 :: 634 评论 :: 571万 阅读

  最近在学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"

复制代码
        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);
        }
复制代码

 

 

posted on   逆心  阅读(6300)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示