Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.03.2019, 19:09
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

Файл на сервер без New formData()
Доброго времени суток уважаемые форумчане.
Спортивный интерес отослать файл на сервер без New formData(). Точнее вообще без формы, типа есть инпут, в нем файл, его и отправить.
Всё время пользовался append'ом, в ус не дул, а щас че то засвербило как просто отправить.
Ответить с цитированием
  #2 (permalink)  
Старый 31.03.2019, 20:17
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,807

Кодируйте файл в base64 с помощью FileReader и отправляйте на сервер.
Ответить с цитированием
  #3 (permalink)  
Старый 31.03.2019, 20:18
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Пусть file является файлом из <input>, тогда можно отправить так...

fetch("/file-api", {
	method: "post",
	body: file,
	headers: {
		"Content-Type": file.type
	}
});
Ответить с цитированием
  #4 (permalink)  
Старый 31.03.2019, 22:00
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

Nexus,
Malleys,
Спасибо.
Я немного другое хотел. formData.append добавляет ключ и значение для отправки post'ом. Ключ и значение можно ведь в методе .send() указать, вроде 'key=' + value. Тогда на стороне сервера в php будет $_POST['key'] = value. Вопрос в том, что можно ли также с файлом поступить. Что-то не получилось в лоб
Ответить с цитированием
  #5 (permalink)  
Старый 31.03.2019, 22:30
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от atanov
$_POST['key'] = value
Так это на PHP, мой пример вы можете обработать так...
<?php

$data = file_get_contents("php://input");

// делайте что-нибудь с $data, т. е. с содержимым файла
Ответить с цитированием
  #6 (permalink)  
Старый 02.04.2019, 10:33
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

Malleys,
Дык дело не в том,чтобы обработать...
Я ж говорю свербит, а как просто отправить, вроде простого значения, вроде этого:
let value = 'что-то на сервер';
let request = new XMLHttpRequest();
request.open('POST', 'request.php', true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.send('value=' + value);
Ответить с цитированием
  #7 (permalink)  
Старый 02.04.2019, 11:15
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от atanov
'Content-Type', 'application/x-www-form-urlencoded'
И при этом отправить бинарные данные? Так можно только строку передать, как base64.
Ответить с цитированием
  #8 (permalink)  
Старый 02.04.2019, 14:03
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

laimas,
упс, хотя это для строки и привёл.
А хрен с этой теорией, буду formData() использовать .
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование Base64 в файл в IndexedDb pakskiy Общие вопросы Javascript 4 15.04.2015 13:26
AJAX навигация без якоря(Требуется помощ) Radik55rus AJAX и COMET 11 14.08.2014 10:34
Отправка файла на сервер асинхронно DDestroy Internet Explorer 0 09.03.2011 12:10
Реально ли отправить файл на сервер AJAX ????? macexa jQuery 11 14.01.2011 07:30
JavaScript как файл закодировать base64? Трактор AJAX и COMET 3 10.06.2008 13:22