javascript - ajax上传文件后台使用$_files接受为空
本文介绍了javascript - ajax上传文件后台使用$_files接受为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
javascript代码:
<html><head><meta charset="UTF-8">
<style>
img{
max-width:80%;
display:block;
}
</style>
</head><body><input id="img" type="file">
<p id="text"></p>
<script>
var
up=function(o,success,x,file){
if(typeof success=='function')
file=o;
x=new XMLHttpRequest()
x.open('POST','http://127.0.0.1/up.php?r='+Math.random(),1)
x.onload=function(r){
r=x.responseText
if(success)//if r.pid and the twice parameter existing
return success(r)
}
x.send(file)
}
</script>
<script>
img.onchange=function(){
if(!this.files||!this.files[0])
return alert('选取文件出错!')
var
imgfile=this.files[0]
if(imgfile.type.indexOf('image')!=0)
return alert('这不是一个图像或音频!')
up(imgfile,function(r){
text.innerHTML=r
})
}
</script>
</body>
</html>
后台代码:
<?php
header('Access-Control-Allow-Origin:*');
header("Content-Type:text/json;charset=utf-8");
echo json_encode($_FILES);
?>
返回数据为[]
解决方案
异步上传文件,应使用FormData
。例如:
var oMyForm = new FormData();
oMyForm.append("file", file);
x.send(oMyForm);
参考地址:http://www.cnblogs.com/lhb25/...
这篇关于javascript - ajax上传文件后台使用$_files接受为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文