如何将文件从javascript上传到服务器


How to upload a file from javascript to the server?

我正在做一个用户需要加载照片的网页。由于这张照片将链接到一个唯一的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