我正在做一个用户需要加载照片的网页。由于这张照片将链接到一个唯一的id,我希望将该照片传输到服务器并保存为NUMBER.jpg或NUMBER.png或任何扩展名。因此,在javascript代码中调用输入类型字段上的事件,如下所示:
var file = document.getElementById("foto").files[0];
document.getElementById("pathFoto").value = file.name;
var formData = new FormData();
formData.append('foto',file,file.name);
var xhr = new XMLHttpRequest();
xhr.open('POST','php/handler.php',true);
xhr.onload = function() {
if (xhr.status == 200){
console.log("Done");
}
else{
console.log("An error ocurred " + xhr.responseText);
}
}
xhr.send(formData);
在php方面,这就是我所做的:
$image = $_POST["foto"];
file_put_contents("atest.jpg",$image);
现在我得到的错误是"foto"是一个未定义的索引。谁能告诉我我做错了什么?
这是我的做法
var file = document.getElementById("foto").files[0];
var formData = new FormData();
formData.append('foto',file);
initial ajax request like you did above.....
xhr.send(formData);
您始终可以从 PHP 获取文件名。您不必附加它。
在你的 PHP 中,执行
if(isset($_FILES['foto']['name])){
}
点击链接了解如何在 PHP 中上传文件http://www.w3schools.com/php/php_file_upload.asp