PHP里的ajax无刷新上传图片问题
发布网友
发布时间:2022-10-08 03:42
我来回答
共3个回答
热心网友
时间:2023-11-24 16:42
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']; //这个是服务器接收到的临时文件的路径,就是文件已经在服务器上了
热心网友
时间:2023-11-24 16:43
“ajax是使用了浏览器内部的XmlHttpRequest对象来传输XML数据的。既然是Xml的数据传输,那么传输的数据肯定是文本的,而文件上传则需要传输二进制的数据,显然用ajax是不可能的。”
http://www.oschina.net/p/uploadify
用这个插件吧,里面带有实例追问你的意思是ajax上传文件根本不可能实现 对吗??
追答ajax 提交不了文件的,如果发现纯的ajax可以提交文件,可以讨论下,html5好像可以了
热心网友
时间:2023-11-24 16:43
图片上传完成之后,可以在后台返回 图片的地址字符串
这样你就可以把地址存到页面上的一个<input type="hidden">里面,再随着主表单的提交存入数据库了