2016-04-26 71 views
0

我正在做一个用户需要加载照片的网页。由于此照片将链接到一个唯一的ID,我希望该照片被传送到服务器并保存为NUMBER.jpg或NUMBER.png或任何扩展名。所以在输入类型字段的事件被称为,在javascritpt代码,如下所示:如何将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”是一个未定义的索引。谁能告诉我我做错了什么?

+1

的可能的复制[jQuery的阿贾克斯文件上传(HTTP上传文件://计算器.com/questions/2320069/jquery-ajax-file-upload) –

回答

0

这里的i'ld如何去它

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

+0

非常感谢。它工作得很好。总结一下,我只需要改变图像文件在$ _FILES ['foto']中,然后在PHP中使用该命令move_uploaded_file($ _ FILES [“foto”] [“tmp_name”],“atest.jpg” );谢谢!!!! – aarelovich

+0

不客气。 –

相关问题