参考博文:
Web 前沿——HTML5 Form Data 对象的使用
经过jQuery Ajax使用FormData对象上传文件
XMLHttpRequest Level 2 添加了一个新的接口——FormData。与普通的 Ajax 相比,使用 FormData 的最大优势就是咱们能够异步上传二进制文件。
jQuery 2.0+的版本支持FormDatahtml
方法一:使用<form>
表单初始化FormData对象方式上传文件前端
<form enctype="multipart/form-data"> <input type="file" name="myfile" onchange="loadFile(this.files[0])"> </form> <script> function loadFile(file){ var formdata = new FormData($('form')[0]); $.ajax({ url: 'jobs/add', type: 'POST', datatype: 'json', data: formdata, cache:false, traditional: true, contentType: false, processData: false, success: function (data) {}, error: function () {} }); } </script>
class Add: def POST(self): i = web.input(myfile={}) print(i['myfile'].filename) #文件名 print(i['myfile'].value) #文件内容 print(i['myfile'].file.read()) #文件内容
注意:html5
<form>
的enctype属性须要设置为“multipart/form-data”方法二√:不用<form>
,使用FormData对象添加字段方式上传文件web
有时,咱们并不想用ajax