Я пытаюсь выполнить загрузку файла изображения с помощью ajax без обновления страницы, но файл не будет перемещен в указанную папку. Я сделал очень простой php-код загрузки файла, чтобы избежать ошибок и разработать его позже.
if($_SERVER["REQUEST_METHOD"]=="POST"){
$file = $_FILES["uploaded"]
$target_dir = "user_image/";
$target_file = $target_dir . basename($_FILES["uploaded"]["name"]);
move_uploaded_file($_FILES["uploaded"]["tmp_name"],$target_file);
}
Мой ajax и JavaScript работают нормально, но в целевом файле нет изображения user_image /
<script charset="UTF-8">
function _(id){
return document.getElementById(id);
}
_("file_upload").onchange = function() {
//_("file_upload").submit();
var id = _("user_id").innerHTML;
var file = _("file_upload").files[0];
var formdata = new FormData();
formdata.append("file1",file);
var ajax = new XMLHttpRequest();
ajax.onreadystatechange =
function(){
if(ajax.readyState==4 && ajax.status==200){
_("one").remove();
var img = document.createElement('img');
var first_path = '/user_image/';
var path = first_path.concat(id,'.png');
img.setAttribute('alt','User image');
img.setAttribute('id','one');
img.setAttribute('src',path);
_("user").appendChild(img);
alert("end");
}
else{
_("one").remove();
var img = document.createElement('img');
img.setAttribute('src','/img/loading.gif');
img.setAttribute('alt','User image');
img.setAttribute('id','one');
_("user").appendChild(img);
}
}
ajax.open("POST","upload_image.php");
ajax.send(formdata);
};
</script>
Вам нужно изменить заголовок запроса, чтобы сделать эту работу.
ajax.setRequestHeader("Content-type", "multipart/form-data");
Других решений пока нет …