ユーザーがファイルをサーバーにアップロードできるようにする簡単なフォームを設計しました。最初、フォームには 1 つの「参照」ボタンが含まれています。ユーザーが複数のファイルをアップロードしたい場合は、フォームに別の「参照」ボタンを追加する「ファイルを追加」ボタンをクリックする必要があります。フォームが送信されると、ファイルのアップロード プロセスは「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()」関数をどのように記述すべきかについての提案は、本当に役に立ちます。