代码非常简单,先上代码
$.fn.fileAJAX= function (options) {
var defaults={
url:null,
type:'POST',
cache:false,
data:null,
processData: false,
contentType: false,
success: function () {
},
error: function () {}
};
var option= $.extend({},defaults,options);
var uploadFunc= function () {
$.ajax({
url:option.url,
type:option.type,
cache:option.cache,
data:option.data,
processData:option.processData,
contentType:option.contentType,
success:option.success,
error:option.error
});
};
return $(this).each(function () {
uploadFunc();
})
};
主要注意两点:(1)当使用<code>form</code>f表单配合<code>fajax</code>f上传文件的时候,<code>form</code>表单不能缺少<code>post</code>请求。(2)使用<code>ajax</code>上传区别于<code>form</code>上的点是生成了<code>FormData</code>对象,对于嵌套form表单<code>data=new FormData($('#uploadForm')[0])</code>,对于<code>div</code>这样非<code>form</code>标签,<code>data=(new FormData).append('file', $('#file')[0].files[0])</code>,前端代码类似这样
<div id="uploadForm">
<input id="file" type="file"/>
<button id="upload" type="button">upload</button>
</div>
网友评论