javascript - jQuery+ajax文件上传失败,什么原因?
文件上传
后端php部分:ajax.php
js部分,用js上传的时候是成功的,但用jquery的时候出现了两种错误:
一种是用$.ajax方法:
$(function(){
$(".sub").click(function(){
var fd=new FormData($("#up"));
$.ajax({
url: 'ajax.php' ,
type: 'POST',
data: fd,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (returndata) {
alert(returndata);
},
error: function (returndata) {
alert(returndata);
}
});
})
})
报错说找不到$_FILES里的pic,为什么呢?
补充:这个地方搞定了,var fd=new FormData($("#up"));需要写成:
var fd=new FormData($("#up")[0]);
具体可见:http://segmentfault.com/q/1010000004213457
和 http://segmentfault.com/a/1190000002938709
用$.post方法的时候:
$.post("ajax.php",fd,function(data){
console.log(data);
})
报错:Uncaught TypeError: Illegal invocation
这又是为什么呢?
(jquery是1.7.1版本的)
回复内容:
html部分:
文件上传
后端php部分:ajax.php
js部分,用js上传的时候是成功的,但用jquery的时候出现了两种错误:
一种是用$.ajax方法:
$(function(){
$(".sub").click(function(){
var fd=new FormData($("#up"));
$.ajax({
url: 'ajax.php' ,
type: 'POST',
data: fd,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (returndata) {
alert(returndata);
},
error: function (returndata) {
alert(returndata);
}
});
})
})
报错说找不到$_FILES里的pic,为什么呢?
补充:这个地方搞定了,var fd=new FormData($("#up"));需要写成:
var fd=new FormData($("#up")[0]);
具体可见:http://segmentfault.com/q/1010000004213457
和 http://segmentfault.com/a/1190000002938709
用$.post方法的时候:
$.post("ajax.php",fd,function(data){
console.log(data);
})
报错:Uncaught TypeError: Illegal invocation
这又是为什么呢?
(jquery是1.7.1版本的)
设置不对。
var data = new FormData();
data.append('file', $('input[type=file]')[0].files[0]);
$.ajax({
url: 'ajax.php',
data: data,
processData: false,
type: 'POST'
contentType: 'multipart/form-data',
mimeType: 'multipart/form-data',
success: function (data) {
alert(data);
}
});
Ajax是不能上传附件的,如果需要上传附件请参考使用jQuery form插件
ajax只能传输文本流,不能运输二进制的文件。
可参考我写的关于FormData不刷新上传文件
FormData
ajax不能上传文件,还有form上传文件的enctype属性是要有的
contentType: false,
processData: false,
上一篇: php单例模式
推荐阅读
-
javascript - jQuery+ajax文件上传失败,什么原因?
-
javascript - html上传图片选择文件以后,未提交前,文件保存在哪里?
-
nginx+php 上传文件失败的问题client_max_body_size
-
javascript - php做了个from表单视频上传功能,在pc测试成功,在ios和Android均失败
-
PHP Session和Javascript实现文件上传进度条
-
javascript - 怎么把html上文件选择器选中的文件上传到服务器指定目录并把patch记录到数据库呢?
-
javascript验证上传文件的类型限制必须为某些格式_javascript技巧
-
详解jquery uploadify 上传文件_javascript技巧
-
上传文件返回的json数据会被提示下载问题解决方案_javascript技巧
-
php文件上传总是失败,该如何处理