日期:2014-05-17  浏览次数:20429 次

关于文件上传$_FILES[]的问题!
$_FILES["userfile"]这里userfile一定要是前台的这个控件的名字 <input name="userfile" type="file" />


现在有个问题是。我用JS
获取file控件的值 userfile=document.getElementById("userfile").value;
然后通过ajax到后台处理
$.ajax({
url:from.attr('action'),
data:"HeadImg="+userfile+"",  
type:"post",
dataType:"text",
success:function(data){
document.write(data);
//alert(data)
if(data=="1"){
window.location.href("home.php");
}
}
});
然后后台
$POST['HeadImg']可以接受到 userfile的值

但是
这样写

move_uploaded_file($_FILES[$POST['HeadImg']][temp_name],dirname(__FILE__).$_FILES[$POST['HeadImg']]['name']);


出不了效果,文件上传不到时怎么回事。。

$_FILES[$POST['HeadImg']][temp_name]这种写法不行吗?



------解决方案--------------------
这么说吧,客户端把通过HTTP POST将文件上传到服务器,保存在服务器的临时目录里(php.ini中设定的),文件地址即是$_FILES['UpdataHeadimg']['tmp_name'](文件名经过加密)
move_uploaded_file()的作用仅限于把临时目录里的文件移动的新目录。而且由客户端上传文件到服务器也只能这么办,因为服务器端不能主动读取客户端的文件。