一般处理程序上传文件(html表单上传、aspx页面上传)

html 表单上传文件

       一般处理程序由于没有 apsx 页面的整个模型和控件的创建周期,而比较有效率。这里写一个用 html 表单进行文件上传的示例。

       1. 表单元素选用 <input type="file"> 控件。

       2. form 表单需要设置 enctype="multipart/form-data" 属性,请求报文体中数据格式也由键值对更改为数据头和数具体,并有随机边界符分割。

       3. 服务器端接收文件使用 Request.Files 属性。

       4. 使用 HttpPostedFile 的 SaveAs 方法保存文件(需转换成网站物理路径)。

 

 

<body>
    <form action="UploadFile.ashx" method="post" enctype="multipart/form-data">
    用户名:<input type="text" name="txtName" />
    <input type="file" name="fileUpload" />
    <input type="submit" value="上传文件" />
    </form>
</body>
public void ProcessRequest(HttpContext context)
{
    context.Response.ContentType = "text/html";
    HttpServerUtility server = context.Server;
    HttpRequest request = context.Request;
    HttpResponse response = context.Response;
 
    HttpPostedFile file = context.Request.Files[0];
    if (file.ContentLength > 0)
    {
        string extName = Path.GetExtension(file.FileName);
        string fileName = Guid.NewGuid().ToString();
        string fullName = fileName + extName;
        
        string imageFilter = ".jpg|.png|.gif|.ico";// 随便模拟几个图片类型
        if (imageFilter.Contains(extName.ToLower()))
        {
            string phyFilePath = server.MapPath("~/Upload/Image/") + fullName;
            file.SaveAs(phyFilePath);
            response.Write("上传成功!文件名:" + fullName + "<br />");
            response.Write(string.Format("<img src=‘Upload/Image/{0}‘/>", fullName));                
        }
    }
}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。