Задать вопрос
@sergey_privacy
Админ со стажем, начинающий DevOps

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

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

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



Теперь чуть подробнее. Я скачал архив, распаковал, залил на сервер, зашел в папку и увидел красивые кнопочки. Все замечательно работает, закачивается на страницу, на сервере файлы появляются в нужной папке. Но мне то их имена надо обработать вместе с остальной формой и залить имена в БД. Прикручиваю код к существующей странице с формой и кучей других полей. Передаю в обработчик, массив $_FILES есть, но вместо имен пустота и код ошибки -4. Я могу вставить функцию записи имен в файл UploadHandler.php, но не найду, куда именно.
  • Вопрос задан
  • 5153 просмотра
Подписаться 7 Оценить Комментировать
Решения вопроса 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
Сам залез в глубины обработчика, сильно перекроил его, разобрался уже. Но за ответ все равно спасибо.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы