Вопрос:
У меня есть форма с текстовым полем, функцией просмотра файлов (uploadify) и кнопки отправки. Я отправляю эту форму через AJAX. Когда я выбираю файл с помощью браузера файлов, он автоматически загружается в папку, определенную с опцией папки . Теперь после отправки формы я хочу сохранить данные в базе данных. Я могу получить другие данные полей после публикации, но не смог загрузить загруженные файлы. Я хочу массив загруженных файлов в $ _POST после отправки формы следующим образом:
$_POST( 'fullname'=>'ABC', 'uploaded_files' => array( '/uploads/abc.doc', '/uploads/xyz.doc' ) );
Как это возможно ?
До сих пор я выполняю реализацию.
JQuery:
jQuery('.FileUpload').uploadify({ 'uploader' : '/uploadify/uploadify.swf', 'script' : '/uploadify/uploadify.php', 'cancelImg' : '/uploadify/cancel.png', 'folder' : '/uploads', 'auto' : true, 'queueID' : 'fileQueue', 'removeCompleted':false });
HTML:
<form action='save.php' method='POST' enctype='multipart/form-data'> Name: <input type='text' name='fullname' id='fullname'> Source File: <input type='file' name='photos' id='photos' class='FileUpload'> <div id="fileQueue"></div> <input type='submit' name='submit' id='submit'> </form>
Используя javascript, вы можете добавить некоторые данные в свою форму для отслеживания загруженных файлов. Например, вы можете поставить:
<input type='hidden' name='files[]' value="FILENAME1"> <input type='hidden' name='files[]' value="FILENAME2"> <input type='hidden' name='files[]' value="FILENAME3">
Помните, что uploadify имеет событие onComplete
которое может вернуть данные из вашего параметра 'script'
.
Таким образом, когда uploadify передает файл, вы можете затем передать сценарий пути к месту хранения файла, а затем загрузить / сохранить его в своей форме на основе того, что было передано в событии onComplete
. (Это будет часть ответа обратного вызова onComplete
)
Оттуда вы можете заполнить скрытые поля форм, которые они отправили с помощью формы (как продемонстрировал AurelioDeRosa) и заполнены значениями ответов .