[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Загрузка файлов на сервер
Astin
Добрый день всем.

Хочу реализовать загрузку PDF файлов на сервер через AJAX

и вот встала проблема, мне нужно передать не только файл но и данные со скрытого поля
Если устанавливаю contentType: false то в упор не видит данные со скрытого поля, а они как идентификатор для файла.

Как быть?
brevis
Цитата (Astin @ 26.09.2019 - 20:49)
Если устанавливаю contentType: false то в упор не видит данные со скрытого поля, а они как идентификатор для файла.

Кому ты его устанавливаешь?

https://developer.mozilla.org/ru/docs/Web/A...ormData_Objects

_____________
Чатик в телеге
Astin
Значит его можно пропустить?
Astin
Нифига, если убрать contentType: false обработчик не видит файл
sergeiss
Astin, тебе brevis дал ссылку на то, как можно сформировать отправку данных аяксом, не имея вообще никакой формы. Можно это использовать и совместно с jQuery. А серверу пофиг, откуда данные пришли, с формы или ты их сформировал другими средствами. Добавляй файлы, текстовые поля или вообще формируй произвольное поле на основе любых данных.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Astin
Для меня то что написано по ссылке выше немного тяжко, я не очень с js дружу
ajax еще ладно и по мелочи, а вот эти прибамбасы для меня круто
brevis
Вон тебе minimal-demo:
<!DOCTYPE html>
<html>
<head>
<meta
charset="UTF-8">
<title>
Demo</title>
</head>
<body>
<form>

Enter file id:<br>
<input
type="text" id="id" required><br><br>
Select file:<br>
<input
type="file" id="file" accept="application/pdf" required><br><br>
<input
type="submit" value="Upload">
</form>

<script
src="https://code.jquery.com/jquery-3.4.1.min.js"></script>

<script>

(function() {
$('form').submit(function(e) {
e.preventDefault();

var formData = new FormData();
formData.append('file', document.getElementById('file').files[0]);
formData.append('id', document.getElementById('id').value);

$.ajax({
url: 'upload.php',
data: formData,
processData: false,
contentType: false,
type: 'POST',
success: function(res) {
console.log(res)
}
}
);
});
})();
</script>
</body>
</html>


upload.php
<?php

var_dump($_REQUEST);
var_dump($_FILES);


_____________
Чатик в телеге
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.