У меня есть простая форма, которая позволяет пользователю загружать текст комментария и файлы на сервер. Когда форма отправляется, процесс загрузки файла обрабатывается в файле «upload.php». Он отлично работает для загрузки только 1 файла.с помощью ajax для загрузки нескольких файлов
Я хотел бы мой сценарий, чтобы иметь возможность загружать несколько файлов с помощью AJAX.
Это то, что я сделал до сих пор -
HTML (часть):
<input type='file' name='file[]' maxlength='1' accept="image/jpg,image/png,image/jpeg,image/gif" />
<input type='file' name='file[]' maxlength='1' accept="image/jpg,image/png,image/jpeg,image/gif" />
<input type='file' name='file[]' maxlength='1' accept="image/jpg,image/png,image/jpeg,image/gif" />
и так далее ... Я не знаю, сколько файлов будет загружать заранее. у пользователей есть сценарий, который позволяет им загружать столько, сколько они хотят.
JS
$(function() {
$(document).on('submit','form',function(e) {
e.preventDefault();
var $form = $(this);
var file_data = $form.find('.file-field').prop('files')[0];
var form_data = new FormData();
form_data.append('act', act);
form_data.append('comment[text]', $form.find('.comment-field').val());
form_data.append('comment[pageName]', $form.find('.pagename-field').val());
form_data.append('file[]', file_data);
$.ajax({
type: "POST",
url: "ajax/addComment.php",
dataType: 'text',
cache: false,
contentType: false,
processData: false,
async: false,
data: form_data,
success: function(data)
{
$("#loader").hide();
$('#commentsBox'+$form.find('.refid-field').val()).prepend(data);
$("form").reset();
}
});
return false;
});
});
Привет, roi, ваш файл upload.php также необходим, чтобы понять, что вы использовали цикл, чтобы проверить, что $ _FILES имеют один файл или несколько. Подробнее ... вам нужно проверить, что отправлено с помощью var_base form_data javascript. –
@MarmikBhatt - привет, я буду в порядке, если upload.php получит файлы. я просто имею проблему, чтобы перенести их на серверную сторону ... – Roi