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

时间:2016-04-26 17:17:48

标签: javascript php

我正在做一个用户需要加载照片的网页。由于此照片将链接到唯一ID,因此我希望将该照片转移到服务器并保存为NUMBER.jpg或NUMBER.png或任何扩展名。因此,在javascritpt代码中调用输入类型字段上的事件,如下所示:

   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”是一个未定义的索引。谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:0)

这是我如何去做的

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