2016-04-26 25 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

不客氣。 –

相關問題