上传系列:ajaxupload.js

时间:2023-03-14 19:55:50

ajaxupload.js

上次说了jquery.upload.js,这次再说一下ajaxupload.js,这个其实也比较简答,只有一个JS文件:

html代码:

 $(function () {
var btnUpload = $('#upload');
new AjaxUpload(btnUpload, {
action: '/System/Upload', //上传地址
name: 'uploadfile', //文件域名字
onSubmit: function (file, ext) { //上传之前的操作
if (!(ext && /^(jpg|gif|jpeg|png)$/.test(ext))) {
$.messager.alert('提示', '亲,请选择jpg、png、gif、jpeg图片!');
return false;
}
var ele = $(".imglist li");
if (ele.length >= 5) {
$.messager.alert('提示', '亲,最多上传五张图片!');
return false;
}
},
onComplete: function (file, response) { //上传完毕后的操作(response服务器返回的信息)
var html = '<li><span><img src="' + response + '"/><p>';
if ($(".imglist").find('li').length > 0) {
html += '<input type="radio" name="img" value="' + response + '" />';
} else {
html += '<input type="radio" name="img" value="' + response + '" checked="checked" />';
}
html += '<a href="javascript:void(0)" onclick="defimg(this)">主图</a>|<a href="javascript:void(0)" onclick="delimg(this)">删除</a>';
html += '</p></span></li>';
$('.imglist').append(html);
}
});
});

后台代码和jquery.upload.js的差不多,但是有一点需要注意,这个ajaxupload.js在后台接受文件的时候,比如后台方法:

 public ActionResult Upload(HttpPostedFileBase FileData)
{ }

MVC不会直映射到,所以比较坑人的地方出现了,我们需要通过代码,再获取上传文件

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