参考博文: web 前沿——html5 Form Data 对象的使用 通过 jQuery Ajax 使用 FormData 对象上传文件 XMLHttpRequest Level 2 添加了一个新的接口——FormData。与普通的 Ajax 相比,使用 FormData 的最大优点就是我们可以异步上传二进制文件。 jQuery 2.0 + 的版本支持 FormData
方法一:使用
表单初始化 FormData 对象方式上传文件
- <form>
- <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()) #文件内容
注意:
的 enctype 属性需要设置为 "multipart/form-data"
- <form>
方法二√:不用
,使用 FormData 对象添加字段方式上传文件
- <form>
有时,我们并不想用
来源: http://www.cnblogs.com/xuehaoyue/p/6978810.html