$.ajax({ url: '/upload', type: 'POST', cache: false, data: new FormData($('#uploadForm')[0]), processData: false, contentType: false }).done(function(res) { }).fail(function(res) {});
这里要注意几点:ajax
processData
设置为false
。由于data
值是FormData
对象,不须要对数据作处理。<form>
标签添加enctype="multipart/form-data"
属性。cache
设置为false
,上传文件不须要缓存。contentType
设置为false
。由于是由<form>
表单构造的FormData
对象,且已经声明了属性enctype="multipart/form-data"
,因此这里设置为false。上传后,服务器端代码须要使用从查询参数名为file
获取文件输入流对象,由于<input>
中声明的是name="file"
。缓存
若是不是用<form>
表单构造FormData
对象又该怎么作呢? 服务器