參考博文:
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