HTML C# ajax结合ashx处理程序实现文件上传

2021-07-16 06:11

阅读:728

YPE html>

ajax结合ashx处理程序实现文件上传

一、ajaxFileUpload是一个异步上传文件的jQuery插件。

  ajaxFileUpload参数说明:(copy了别人的参数说明)

1、url            上传处理程序地址。  
2,fileElementId       需要上传的文件域的ID,即的ID。
3,secureuri        是否启用安全提交,默认为false。 
4,dataType        服务器返回的数据类型。可以为xml,script,json,html。如果不填写,jQuery会自动判断。
5,success        提交成功后自动执行的处理函数,参数data就是服务器返回的数据。
6,error          提交失败自动执行的处理函数。
7,data           自定义参数。这个东西比较有用,当有数据是与上传的图片相关的时候,这个东西就要用到了。
8, type            当要提交自定义参数时,这个参数要设置成post

 

HTML代码:

 1 
 2 "http://www.w3.org/1999/xhtml">
 3 4 "Content-Type" content="text/html; charset=utf-8"/>
 5      6     
 7     
 8      9     10     
11     39     74 
75 "font-size:25px;">
76 
77     
78 
79     
80 选择文件:"txt_filePath" type="text" readonly="readonly" /> 81 class="file">"btnfile" name="btnfile" type="file" />浏览 82
83 84

 

ashx代码:

 1 "C#" Class="FileHandler" %>
 2 
 3 using System;
 4 using System.Web;
 5 
 6 public class FileHandler : IHttpHandler {
 7     
 8     public void ProcessRequest (HttpContext context) {
 9         //context.Response.ContentType = "text/plain";
10         //context.Response.Write("Hello World");
11 
12 
13         context.Response.ContentType = "text/plain";
14         string msg = string.Empty;
15         string error = string.Empty;
16         string result = string.Empty;
17         string filePath = string.Empty;
18         string fileNewName = string.Empty;
19 
20         //这里只能用才能有效果,因为服务器控件是HttpInputFile类型
21         HttpFileCollection files = context.Request.Files;
22         if (files.Count > 0)
23         {
24             //设置文件名
25             fileNewName = DateTime.Now.ToString("yyyyMMddHHmmssff") + "_" + System.IO.Path.GetFileName(files[0].FileName);
26             //保存文件
27             files[0].SaveAs(context.Server.MapPath("~/Upload/" + fileNewName));
28             msg = "文件上传成功!";
29             result = "{msg:‘" + msg + "‘,filenewname:‘" + fileNewName + "‘}";
30         }
31         else
32         {
33             error = "文件上传失败!";
34             result = "{ error:‘" + error + "‘}";
35         }
36         context.Response.Write(result);
37         context.Response.End();
38     }
39  
40     public bool IsReusable {
41         get {
42             return false;
43         }
44     }
45 
46 }

如果想上传多张图片只要给  input 添加一个 multiple 属性

即:

"btnfile" name="btnfile" type="file" multiple/>

就可以上传多个图片

ajaxFileUpload下载:

链接:https://pan.baidu.com/s/1slkfpOp 密码:5s8r


评论


亲,登录后才可以留言!