@sergey_privacy
Админ со стажем, начинающий DevOps

Как передать имена файлов от jQuery File Upload в форму или вставить в БД?

Добрый вечер!

Сейчас только развернул у себя аплоадер «jQuery File Upload» и озадачился следующим вопросом: как передать имена файлов от него в форму или в БД?



Теперь чуть подробнее. Я скачал архив, распаковал, залил на сервер, зашел в папку и увидел красивые кнопочки. Все замечательно работает, закачивается на страницу, на сервере файлы появляются в нужной папке. Но мне то их имена надо обработать вместе с остальной формой и залить имена в БД. Прикручиваю код к существующей странице с формой и кучей других полей. Передаю в обработчик, массив $_FILES есть, но вместо имен пустота и код ошибки -4. Я могу вставить функцию записи имен в файл UploadHandler.php, но не найду, куда именно.
  • Вопрос задан
  • 5153 просмотра
Решения вопроса 1
@krekerov
Fullstack ninja
актуально еще?
была проблема
сделал так
.on('fileuploaddone', function (e, data) {
        $.each(data.result.files, function (index, file) {
        	console.log('ok');
        	$.ajax({
			    type: 'post',
			    url: 'driver.php',
			    data: {
			    	action: 'addProductImage',
			    	image: file.name,
			    	art: $('#product-art').val()

        		},
			    success: function (data) {
			    	getProductImages($('#product-art').val());
			    }
			
			});

фотки заливаются в директорию, и при каждой успешной загрузке отправляется аякс запрос и добавляется имя картинки к конкретному товару с определенным артикулом.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@lubezniy
При использовании подобных загрузчиков передача файлов идёт в обход формы ещё до того, как она засабмитится. Поэтому и $_FILES пуст. Сам не имею опыта работы с jQuery File Upload, использую Uploadify, но принцип один. Загрузчик состоит из flash-части, работающей на клиенте, и PHP-скрипта приёма файла, принимающего файл на сервере. Клиент помимо файлов может передавать серверному PHP-скрипту дополнительные параметры — в т. ч. задаваемые прикладным разработчиком. В качестве варианта решения можно перед показом формы сгенерить некое случайное значение (назовём его токеном), передать его как дополнительный параметр загрузчику и подставить его же в какой-либо параметр формы, а в серверном скрипте загрузчика каким-то образом организовать запоминание токена вместе с данными загруженных файлов (чтобы было понятно, что такие-то файлы связаны с таким-то токеном). Скрипт, вызываемый при сабмите формы, получает значение токена, обрабатывает файлы, связанные с ним при загрузке — профит.
Ответ написан
Комментировать
@sergey_privacy Автор вопроса
Админ со стажем, начинающий DevOps
Сам залез в глубины обработчика, сильно перекроил его, разобрался уже. Но за ответ все равно спасибо.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
29 мар. 2024, в 17:14
4000 руб./за проект
29 мар. 2024, в 17:04
5000 руб./за проект
29 мар. 2024, в 17:03
3000 руб./за проект