Я разработал простую форму, которая позволяет пользователю загружать файлы на сервер. Первоначально форма содержит одну кнопку "Просмотр". Если пользователь хочет загрузить несколько файлов, ему нужно нажать кнопку "Добавить дополнительные файлы", которая добавит еще одну кнопку "просмотреть" в форме. Когда форма отправляется, процесс загрузки файла обрабатывается в файле "upload.php". Он отлично работает для загрузки нескольких файлов. Теперь мне нужно отправить форму с помощью jQuery '.submit()' и отправить запрос ajax ['.ajax()'] в файл 'upload.php' для обработки загрузки файла.
Вот моя форма HTML:
<form enctype="multipart/form-data" action="upload.php" method="post">
<input name="file[]" type="file" />
<button class="add_more">Add More Files</button>
<input type="button" id="upload" value="Upload File" />
</form>
Вот JavaScript:
$(document).ready(function(){
$('.add_more').click(function(e){
e.preventDefault();
$(this).before("<input name='file[]' type='file' />");
});
});
Вот код для обработки загрузки файла:
for($i=0; $i<count($_FILES['file']['name']); $i++){
$target_path = "uploads/";
$ext = explode('.', basename( $_FILES['file']['name'][$i]));
$target_path = $target_path . md5(uniqid()) . "." . $ext[count($ext)-1];
if(move_uploaded_file($_FILES['file']['tmp_name'][$i], $target_path)) {
echo "The file has been uploaded successfully <br />";
} else{
echo "There was an error uploading the file, please try again! <br />";
}
}
Любые предложения о том, как я должен написать свою функцию .submit(), будут действительно полезны.