2016-04-26 3 views
0

Я делаю веб-страницу, где пользователю нужно загрузить фотографию. Поскольку эта фотография будет связана с уникальным идентификатором, я хочу, чтобы эта фотография была передана на сервер и сохранена как 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 Ajax загрузка файла] (HTTP: // StackOverflow .com/вопросы/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

добро пожаловать. –

Смежные вопросы