JQuery的ajaxFileUpload圖片上傳初試


本案例主要說講使用ajaxFileUpload實現圖片的異步上傳。

 

1、html代碼部分

這里的代碼,主要設置一下name,后台獲取時候要用到,還有設置一個onchange的事件對應的方法:ajaxFileUpload()

 

1 插入圖片:<input style="display:initial;" type="file" alt="插入圖片" id="uploadImage" onchange="ajaxFileUpload()" name="uploadImage" /> </span>
html代碼

 

 

2、js部分代碼

使用這部分代碼,需要引入jq和ajaxfileupload.js這兩個文件。在這里主要設置上傳路徑和對返回的結果做相應的處理

 1 //文件上傳
 2 function ajaxFileUpload() {
 3 
 4     //圖片格式驗證
 5     var x = document.getElementById("uploadImage");
 6     if (!x || !x.value) return;
 7     var patn = /\.jpg$|\.jpeg$|\.png$|\.gif$/i;
 8     if (!patn.test(x.value)) {
 9         alert("您選擇的似乎不是圖像文件。");
10         x.value = "";
11         return;
12     }
13 
14     var elementIds = ["uploadImage"]; //flag為id、name屬性名
15     $.ajaxFileUpload({
16         url: '/Forum/SaveImage',//上傳的url,根據自己設置
17         type: 'post',
18         secureuri: false, //一般設置為false
19         fileElementId: 'uploadImage', // 上傳文件的id、name屬性名
20         dataType: 'text', //返回值類型,一般設置為json、application/json
21         elementIds: elementIds, //傳遞參數到服務器
22         success: function (data, status) {
23             //alert(data);
24             if (data == "Error1") {
25                 alert("文件太大,請上傳不大於5M的文件!");
26                 return;
27             } else if (data == "Error2") {
28                 alert("上傳失敗,請重試!");
29                 return;
30             } else {
31                 //這里為上傳並做一下請求顯示處理,返回的data是對應上傳的文件名
32                 $("#ReplyContent").append("<img width='300' height='300' src='" + "../UploadFile/ForumImages/" + data + "'/>");
33 
34             }
35         },
36         error: function (data, status, e) {
37             alert(e);
38         }
39     });
40     //return false;
41 }
JS

 

3、后台處理代碼(此處為C#)

后台的處理主要有對上傳文件的格式驗證,文件大小驗證,給文件重命名和設置一下保存路徑,最后返回圖片的新名字。這樣js就可以根據路徑去請求該圖片並展示出來。

 1 try
 2             {
 3                 //判斷上傳文件的數目
 4                 if (Request.Files.Count > 0)
 5                 {
 6                     //獲取文件
 7                     HttpPostedFileBase proImage = Request.Files["upload"];//獲取上傳的圖片
 8 
 9 
10                     //判斷上傳文件大小,小於5M
11                     if (proImage.ContentLength > 5 * 1024 * 1024)
12                     {
13                         return Content("Error1");
14                     }
15                    
16                     //截取圖片類型:image/png
17                     string[] filetypes = proImage.ContentType.Split('/');
18 
19                     //判斷文件的類型
20                     if (filetypes[1] == "jpg" || filetypes[1] == "gif" || filetypes[1] == "png" || filetypes[1] == "bmg" || filetypes[1] == "jpeg")
21                     {
22                         //給上傳文件重命名
23                         string filename = DateTime.Now.ToString("yyyyMMddHHmmssfff") + Guid.NewGuid().ToString();
24                         
25                         //文件保存的路徑
26                         string filesavepath = Server.MapPath("~/Uploadfile/ForumImages/" + filename + "." + filetypes[1]);
27 
28                         //保存圖片
29                         proImage.SaveAs(filesavepath);
30 
31 
32 
33                        //返回文件名,可以在前台展示出來
34                        return Content(filename + "." + filetypes[1]);
35                     }
36                     else
37                     {
38                         //圖片格式不對
39                        return Content("Error2");
40                     }
41 
42                    
43                 }
44                 else
45                 {    //上傳圖片數目小於或者等於0
46                     return Content("Error1");
47                 }
48             }
49             catch {
50                 return Content("Error2");
51             }
c#代碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM