Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XMLHttpRequest() отправка файла, Не получается отправить 
:(
    Опции темы
Виктop
Дата 25.10.2015, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 25.10.2015

Репутация: нет
Всего: нет



Всем здрасти, не получается отправить файл на сервер, с обычной формы файл.php принимает и сохраняет, а c помощью new XMLHttpRequest() шлёт ответ что запрос принят, но не сохраняет файл, скорее всего проблема в заголовках отправляемых скриптом, помогите разобраться
Код

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>отправка</title>
</head>
<body>
<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>
</body>
</html>

PM MAIL   Вверх
ksnk
Дата 25.10.2015, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Гуглить FormData, смотреть примеры и использовать его. Вручную собирать запрос на JS не очень разумно.



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Виктop
Дата 25.10.2015, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 25.10.2015

Репутация: нет
Всего: нет



Спасибо, FormData - это хорошо, но мне этот вариант не подходит, FormData формирует заголовки исходя из формы, в моём же случае форма существует только как пример, а файл должен быть отправлен нажатием конопки button, без какой либо формы
PM MAIL   Вверх
ksnk
Дата 25.10.2015, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



FormData не обязательно привязывать к форме. Можно просто напихать туда нужных полей и файлов и послать... 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Виктop
Дата 25.10.2015, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 25.10.2015

Репутация: нет
Всего: нет



Во как? Так уже интересней, тогда пойду гуглить на эту тему, ещё раз спасибо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0490 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.