PHP里的ajax无刷新上传图片问题

2025-03-20 15:56:05
推荐回答(3个)
回答1:

html:


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']; //这个是服务器接收到的临时文件的路径,就是文件已经在服务器上了

回答2:

“ajax是使用了浏览器内部的XmlHttpRequest对象来传输XML数据的。既然是Xml的数据传输,那么传输的数据肯定是文本的,而文件上传则需要传输二进制的数据,显然用ajax是不可能的。”

http://www.oschina.net/p/uploadify
用这个插件吧,里面带有实例

回答3:

图片上传完成之后,可以在后台返回 图片的地址字符串
这样你就可以把地址存到页面上的一个里面,再随着主表单的提交存入数据库了