ファイルが FormData オブジェクトにも反映される FileList オブジェクトで File オブジェクトと length プロパティを設定する方法は? プロンプトに記載されているように、 の .files プロパティ要素を別の から FileList に追加します。要素の .files プロパティまたは DataTransfer.files プロパティ。 ただし、FileList オブジェクトの .length プロパティは、.files プロパティで設定した後でも 0 のままです。さらに、 を渡すと、 を含むこのアプローチを使用して変更された .files を使用すると、.size が 0 の File オブジェクトが生成されます。 この問題に対処するには、まず FileList が変更可能であることを確認する必要があります。これは、DataTransfer コンストラクターを利用し、DataTransferItemList を通じてアクセスできる変更可能な FileList を作成することで実現できます。 FileList が変更可能になると、DataTransferItemList.add() メソッドを使用してファイルを個別に設定できます。これにより、FileList.length プロパティが正しいファイル数に設定されるようになります。 この手順に従うと、フォームから作成された FormData オブジェクトにもファイルが反映されます。 これが例です: const dT = new DataTransfer(); dT.items.add(new File(['foo'], 'programmatically_created.txt')); document.querySelector('input[type="file"]').files = dT.files;ログイン後にコピー このアプローチでは、 の FileList は次のようになります。要素には、DataTransfer オブジェクトで作成されたファイルが設定されます。 FileList.length プロパティは 1 に設定され、ファイルはフォームから構築された FormData オブジェクトに反映されます。