PHP里的ajax无刷新上传图片问题
3个回答
展开全部
html:
<input id="file" name="file" type="file"/>
jquery:
var formData = new FormData();
formData.append("file", $("#file")[0].files[0]);
$.ajax({
xhr: function() {
var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
//这里是上传过程的实时,一般用于做进度条
}
}, false);
return xhr;
},
type: 'POST',
contentType:false,
processData:false,
url:'', //你php端的地址
data: formData,
}).done(function(d) {
console.log(d); //d是php的json返回
});
php端:
if ($_FILES['file']['error'] != 0) {
return '上传错误';
}
$file = $_FILES['file']['tmp_name']; //这个是服务器接收到的临时文件的路径,就是文件已经在服务器上了
<input id="file" name="file" type="file"/>
jquery:
var formData = new FormData();
formData.append("file", $("#file")[0].files[0]);
$.ajax({
xhr: function() {
var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
//这里是上传过程的实时,一般用于做进度条
}
}, false);
return xhr;
},
type: 'POST',
contentType:false,
processData:false,
url:'', //你php端的地址
data: formData,
}).done(function(d) {
console.log(d); //d是php的json返回
});
php端:
if ($_FILES['file']['error'] != 0) {
return '上传错误';
}
$file = $_FILES['file']['tmp_name']; //这个是服务器接收到的临时文件的路径,就是文件已经在服务器上了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
“ajax是使用了浏览器内部的XmlHttpRequest对象来传输XML数据的。既然是Xml的数据传输,那么传输的数据肯定是文本的,而文件上传则需要传输二进制的数据,显然用ajax是不可能的。”
http://www.oschina.net/p/uploadify
用这个插件吧,里面带有实例
http://www.oschina.net/p/uploadify
用这个插件吧,里面带有实例
追问
你的意思是ajax上传文件根本不可能实现 对吗??
追答
ajax 提交不了文件的,如果发现纯的ajax可以提交文件,可以讨论下,html5好像可以了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
图片上传完成之后,可以在后台返回 图片的地址字符串
这样你就可以把地址存到页面上的一个<input type="hidden">里面,再随着主表单的提交存入数据库了
这样你就可以把地址存到页面上的一个<input type="hidden">里面,再随着主表单的提交存入数据库了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询