С Новым годом! Форум программистов, компьютерный форум, киберфорум
Web-мастеринг
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
82 / 78 / 34
Регистрация: 13.02.2018
Сообщений: 1,347

Отправка файла на сервер

10.05.2019, 21:57. Показов 2090. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, не могу почему-то отправить файл на сервер. Я не использую формы, поэтому мне бы лучше простым JQuery, как я делаю:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$('#RegRegisterBTN').on('click',function(e) {
    var xmlHttpRequest = new XMLHttpRequest();
 
        var file = "image";
        var fileName = "Name";
        var target = "upload_icon.php";
        var mimeType = "multipart/form-data";
 
        xmlHttpRequest.open('POST', target, true);
        xmlHttpRequest.setRequestHeader('Content-Type', mimeType);
        xmlHttpRequest.setRequestHeader('Content-Disposition', 'attachment; filename="' + fileName + '"');
        xmlHttpRequest.send(file);
 
        xmlHttpRequest.onreadystatechange = function()
        {
            if(xmlHttpRequest.readyState != 4)
            return;
 
            if(xmlHttpRequest.status != 200)
            {
                alert("Error " + xmlHttpRequest.status + ": " + xmlHttpRequest.statusText);
                return;
            }
            alert(xmlHttpRequest.responseText);
        }
  });
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
// Проверяем установлен ли массив файлов и массив с переданными данными
if(isset($_FILES) && isset($_FILES['image'])) {
 
  //Переданный массив сохраняем в переменной
  $image = $_FILES['image'];
  // Достаем формат изображения
  $imageFormat = explode('.', $image['name']);
  $imageFormat = $imageFormat[1];
 
  // Генерируем новое имя для изображения. Можно сохранить и со старым
  // но это не рекомендуется делать
  $imageFullName = './images/' . hash('crc32',time()) . '.' . $imageFormat;
 
  // Сохраняем тип изображения в переменную
  $imageType = $image['type'];
 
  // Сверяем доступные форматы изображений, если изображение соответствует,
  // копируем изображение в папку images
  if ($imageType == 'image/jpeg' || $imageType == 'image/png') {
    if (move_uploaded_file($image['tmp_name'],$imageFullName)) {
      echo 'success';
    } else {
      echo 'error';
    }
  }
}
 
?>
Но выдает ошибку:
Warning: Missing boundary in multipart/form-data POST data in Unknown on line 0
Не могу исправить её.

Или есть у кого лучше вариант?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.05.2019, 21:57
Ответы с готовыми решениями:

Отправка файла на сервер
Подскажите как сделать следующее....на сайте созданном на силвере, должна быть кнопка...по нажатию на нее открывается список файлов на...

отправка файла на сервер
есть php код отправки определенного файла на сервер через определенный путь &quot;upload/20171/clasa/7/a/&quot; &lt;?php ...

Отправка файла на сервер
Почему не работает такой код: &lt;form enctype='multipart/form-data' method='post' action='engine/upload.php'&gt; &lt;input name='file'...

1
126 / 93 / 18
Регистрация: 09.01.2011
Сообщений: 467
12.05.2019, 21:18
Лучший ответ Сообщение было отмечено k0vpack как решение

Решение

надо использовать специальные библиотеки, так как тело запроса, в котором тип multipart/form-data оформляется особым образом. Если все же хотите сделать своими силами, то читайте RFC, там подробно описаны все нюансы
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.05.2019, 21:18
Помогаю со студенческими работами здесь

Отправка файла на сервер
Задача: при выборе графического файла для загрузки, показать его предварительный просмотр на странице. Как я выяснил, получить путь к...

Отправка файла на сервер
Здравствуйте! Подскажите пожалуйста как правильно отправлять файл на сервер? Я пытаюсь отправить с помощью UploadFiles, но при этом выдаёт...

Отправка файла на сервер
Отправляю POST-запрос с файлом на сервер farpost(.)ru head = { 'Host': 'www.farpost.ru', 'User-Agent': 'Mozilla/5.0 (Windows NT...

Клиент-сервер. Отправка файла
Помогите разобраться пожалуйста. Отправляю файл, а как мне получить его на сервере? Клиент: using System; using...

Отправка файла на FTP-сервер
В общем пользуюсь такими вот штучками ftp -n -s:ai.txt &quot;ип серва&quot; и ai.txt USER ******** ******* binary cd www send...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru