既存の選択したファイルを置き換えるのではなく、フォームに複数のファイルを追加できるHTMLファイル入力フィールドを作成しようとしています。
これは、複数のファイルをアップロードするための基本的なファイル入力要素です。
<input type="file" id="fileupload" multiple>
しかし、それは以前に選択されたファイルを置き換えます:(
HTMLに複数のファイルを追加するための組み込み機能がないとは信じられませんが、これまでに見たすべてのソリューションには、理想的ではない外部ライブラリの追加が含まれています。
これはSOの問題だと思います。
ファイルフィールドは、複数であってもなくても、常に前の選択を置き換えます。ユーザーがファイルを選択するたびに、選択内容を別の場所に保存する必要があります。
ファイルフィールドにはfiles
プロパティがあり、これにはFileList
オブジェクトが含まれます。これは基本的にFile
オブジェクトのリストであり、それぞれにname
のようないくつかのプロパティがあります、type
およびsize
。
change
イベントをリッスンする場合は、選択したファイルを独自の変数に追加し、ユーザーに提示して、ユーザーがファイルを削除できるようにすることもできます。 AJAX=を介してファイルのアップロードをすぐに開始するか、フォームが送信されたときにすべてのファイルを送信することができます。
見る:
https://www.w3.org/TR/FileAPI/#dfn-filelist
https://stackoverflow.com/questions/16742956/file-field-append-file-list
以前にアップロードしたファイルを上書きする問題は一度もありません。バックエンドで、コードはファイルを保存します。これを行う簡単な方法は、データベースのカウンターを使用して、一意のIDでファイルを保存することです。