HttpPostedFile类

在研究HttpRequest的时候,搞文件上传的时候,经常碰到返回HttpPostedFile对象的情况,这个对象才是真正包含文件内容的东西。

经常要获取的最重要的内容是FileName属性与SavaAs方法,现在我们来详细看看这个东西。

一、常用属性

  1. ContentLength: 获取上载文件的大小(以字节为单位)。返回一个数字。
  2. ContentType:获取客户端发送的文件的 MIME 内容类型。
  3. FileName: 获取客户端上的文件的完全限定名称。
  4. InputStream:获取一个 Stream 对象,该对象指向一个上载文件,以准备读取该文件的内容。

二、常用方法

  1. SaveAs  保存上载文件的内容。 可以服务器物理路径作为参数。

  代码示例:

  注意表单要加上enctype = "multipart/form-data",后台FileCollect.Count才不会为0。如:

<form action="/Home/GetForm" method="post" enctype="multipart/form-data">
    <p><input type="file" name="file1" value="" /></p>
    <p><input type="file" name="file2" value="" /></p>
    <p><input type="submit" value="提交" /></p>
</form>

  后台代码:

        public ActionResult GetForm()
        {
            HttpRequest request = System.Web.HttpContext.Current.Request;
            HttpFileCollection FileCollect = request.Files;
            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 + FileSave.FileName;     //通过此对象获取文件名
                    string AbsolutePath = Server.MapPath(imgPath);
                    FileSave.SaveAs(AbsolutePath);              //将上传的东西保存
                    Response.Write("<img src=‘" + imgPath + "‘/>");
                }
            }
            return Content("键值对数目:" + FileCollect.Count);
        }
时间: 2024-10-15 22:22:37

HttpPostedFile类的相关文章

HttpPostedFile类的使用方法

HttpPostedFile注意事项: (1)    HttpPostedFile提供对客户端已上载的单独文件的访问. (2)    对于客户端已上载的文件,最好先保存到服务器,再访问:而不是直接访问. (3)     HttpPostedFile file = Request.Files[0]; 变量file只是对文件的引用,对file的任何操作都直接影响到已经上载的文件. (4)  使用StreamReader 读取文件后,要调用Close方法关闭文件流,否则SaveAs相同文件名时,提示文

.Net中的HttpPostedFile类

服务端接收客户端上传的文件时,需要用HttpFileCollection来接收多个文件,每个文件都是个HttpPostedFile对象,之后通过SaveAs方法接收文件并保存在服务器上. 常用属性包括: 常用方法是SaveAs, 使用方式: 1 file.SaveAs(Server.MapPath("Upload/"+ FileName)); 完整代码: 1 HttpFileCollection files = System.Web.HttpContext.Current.Reques

jQuery AJAX 网页无刷新上传示例

新年礼,提供简单.易套用的 jQuery AJAX 上传示例及代码下载.后台对文件的上传及检查,以 C#/.NET Handler 处理 (可视需要改写成 Java 或 PHP). 有时做一个网站项目 (不论是否 ASP.NET),内附的 FileUpload 控件,功能不足 (页面必须刷新.不支援 AJAX),或外观太丑被用户嫌弃 (却无法透过 CSS 自定义外观).网路上虽已有许多可用的示例,如: jQuery File Upload,但功能太强大.外观复杂,欲仅取出部分功能来引用,反而不易

ASP.NET文件操作

在开发Web程序时,不但有存储在数据库中和XML文件中的数据形式需要处理,而且还有很多诸如文本.Word文档和图片等格式的文件数据需要处理.尤其是在一些信息管理系统中,文档的处理流程贯穿了整个系统的运行过程. 文件的操作有很多种,如创建文件.复制文件.删除文件等,这些都是文件最基本的操作,.NET框架提供了一个静态类File来完成这些操作. 文件的I/O操作是一个比较复杂的过程.在.NET框架下,文件的I/O操作方式都是基于流(Stream)的,由于引进了流的概念,程序员可以通过对一系列的通用对

上传文件时出现 不支持给定路径的格式..异常信息

不支持给定路径的格式. 在 System.Security.Util.StringExpressionSet.CanonicalizePath(String path, Boolean needFullPath) ..主要是指保存路径是非法地址,比如没有文件名,路径信息不完整等等. 目前发现ie9中的上传控件的HttpPostedFile类的对象的fileName值是d:\aaa\bbb\cc.zip.而chrome38中获取的值是cc.zip.所以需要Path.GetFileName(file

c#上传文件(二)使用二进制流保存文件

1.html代码: <asp:FileUpload runat="server" ID="UpLoadFile"/> <asp:Button runat="server" ID="btnUpLoad" OnClick="btnUpLoad_Click" Text="上传"/> html代码 2.后台代码: public partial class UpLoadFi

将文件以二进制的形式保存到数据库中

主要应用HttpPostedFile类的InputStream属性.Stream类的read方法和Byte数据类型.首先获取上传数据文件的名称.大小和类型,建立一个访问客户端上传文件的对象HttpPostedFile和一个数据流对象Stream,然后使用数据流Stream对象将上传文件以二进制形式的数据写入Byte类型的数组中,最后将二进制数据保存的数据库中. 代码:try        {            if (this.FileUpload1.PostedFile.FileName

c#上传文件(一)

1.html代码: <body> <form id="form1" runat="server"> <div> <asp:FileUpload runat="server" ID="UpLoadFile"/> <asp:Button runat="server" ID="btnUpLoad" OnClick="btnUpLo

ASP.NET中的路径(path) 详解

一 ASP.NET常用路径(path)获取方法与格式对照表 假设我们的网址为http://localhost:1897/ News/Press/Content.aspx?id=1019 跟 Browser Request 的网址相关的属性与方法 输出(output)实例 备        注 Request.ApplicationPath / 指的是当前的application(应用程序)的目录 Request.PhysicalPath D:\Projects\Solution\web\News