web-dev-qa-db-ja.com

HTMLファイル入力フィールドファイルを追加しますか? (置き換えの代わりに)

既存の選択したファイルを置き換えるのではなく、フォームに複数のファイルを追加できるHTMLファイル入力フィールドを作成しようとしています。

これは、複数のファイルをアップロードするための基本的なファイル入力要素です。

<input type="file" id="fileupload" multiple>

しかし、それは以前に選択されたファイルを置き換えます:(

HTMLに複数のファイルを追加するための組み込み機能がないとは信じられませんが、これまでに見たすべてのソリューションには、理想的ではない外部ライブラリの追加が含まれています。

3
kpurens

これは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

2
Gabriel

以前にアップロードしたファイルを上書きする問題は一度もありません。バックエンドで、コードはファイルを保存します。これを行う簡単な方法は、データベースのカウンターを使用して、一意のIDでファイルを保存することです。

1
Robert Baron