ajaxupload.js
上次說了jquery.upload.js,這次再說一下ajaxupload.js,這個其實也比較簡答,只有一個JS文件:
html代碼:

1 $(function () { 2 var btnUpload = $('#upload'); 3 new AjaxUpload(btnUpload, { 4 action: '/System/Upload', //上傳地址 5 name: 'uploadfile', //文件域名字 6 onSubmit: function (file, ext) { //上傳之前的操作 7 if (!(ext && /^(jpg|gif|jpeg|png)$/.test(ext))) { 8 $.messager.alert('提示', '親,請選擇jpg、png、gif、jpeg圖片!'); 9 return false; 10 } 11 var ele = $(".imglist li"); 12 if (ele.length >= 5) { 13 $.messager.alert('提示', '親,最多上傳五張圖片!'); 14 return false; 15 } 16 }, 17 onComplete: function (file, response) { //上傳完畢后的操作(response服務器返回的信息) 18 var html = '<li><span><img src="' + response + '"/><p>'; 19 if ($(".imglist").find('li').length > 0) { 20 html += '<input type="radio" name="img" value="' + response + '" />'; 21 } else { 22 html += '<input type="radio" name="img" value="' + response + '" checked="checked" />'; 23 } 24 html += '<a href="javascript:void(0)" onclick="defimg(this)">主圖</a>|<a href="javascript:void(0)" onclick="delimg(this)">刪除</a>'; 25 html += '</p></span></li>'; 26 $('.imglist').append(html); 27 } 28 }); 29 });
后台代碼和jquery.upload.js的差不多,但是有一點需要注意,這個ajaxupload.js在后台接受文件的時候,比如后台方法:

1 public ActionResult Upload(HttpPostedFileBase FileData) 2 { 3 4 }
MVC不會直映射到,所以比較坑人的地方出現了,我們需要通過代碼,再獲取上傳文件

1 public ActionResult Upload(HttpPostedFileBase FileData) 2 { 3 FileData = Request.Files["uploadfile"]; 4 }