Всем здрасти, пытаюсь отправить файл на сервер не перезагружая страницы, получаю от сервера ответ: ответ получен
Notice: Array to string conversion in /home/server/test/test.php on line 9 img=Array, но файл не загружается на сервер, на всякий случай приложу файл.php, хотя к нему вопросов нет, с обычной html формы он файл сохраняет, проблема в скрипте, скорее всего в отправляемых заголовках
<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);
move_uploaded_file($_FILES['img']['tmp_name'], "/home/uf/".$_FILES['img']['name']);
echo "ответ получен";
$arr=array();
$arr=$_FILES;
foreach ($arr as $key => $value) {
echo "$key".'='."$value";
}
?>
<form name="form1" enctype="multipart/form-data">
<input type="file" name="img" id="img" />
<br />
<input type="button" value="Отправить" onclick="upload(form1)" />
<p>Ответ: <span id="res"></span></p>
</div>
<script type="text/javascript">
function upload(form1)
{
var form = document.form1;
var img = form.img.value;
var boundary = String(Math.random()).slice(2);
var file = ['\r\n--'+boundary+'\r\nContent-Disposition: form-data; name="img"; filename="image.jpg"\r\nContent-Type: image/jpeg\r\n\r\n'+img+'\r\n --'+boundary+'--\r\n'];
var xmlhttp = new XMLHttpRequest(); // Создаём объект XMLHTTP
xmlhttp.open('POST', 'test.php', true); // Открываем асинхронное соединение
xmlhttp.setRequestHeader('Content-Type', 'multipart/form-data; boundary=' + boundary); // Отправляем кодировку
xmlhttp.send(file); // Отправляем POST-запрос
xmlhttp.onreadystatechange = function() // Ждём ответа от сервера
{
if (xmlhttp.readyState == 4) // Ответ пришёл
{
if(xmlhttp.status == 200) // Сервер вернул код 200 (что хорошо)
{
document.getElementById("res").innerHTML = xmlhttp.responseText; // Ответ сервера
}
}
}
}
</script>