--- title: FormData.append() slug: Web/API/FormData/append translation_of: Web/API/FormData/append ---
{{APIRef("XMLHttpRequest")}}
インターフェイスのappend()
メソッドは、FormDataオブジェクト内の既存のキーに新しい値を追加するか、キーがまだ存在しない場合は追加します。
{{domxref("FormData.set")}}との違いは、指定されたキーが既に存在する場合、{{domxref("FormData.set")}}はすべての既存の値を新しい値で上書きすることです。 一方、append()
は、既存の値のセットの最後に新しい値を追加します。
注:このメソッドはWeb Workersで使用できます。
There are two versions of this method: a two and a three parameter version:
formData.append(name, value); formData.append(name, value, filename);
name
value
.value
filename
{{optional_inline}}Note: If you specify a {{domxref("Blob")}} as the data to append to the FormData
object, the filename that will be reported to the server in the "Content-Disposition" header used to vary from browser to browser.
Void.
The following line creates an empty FormData
object:
var formData = new FormData(); // Currently empty
You can add key/value pairs to this using {{domxref("FormData.append")}}:
formData.append('username', 'Chris'); formData.append('userpic', myFileInput.files[0], 'chris.jpg');
As with regular form data, you can append multiple values with the same name. For example (and being compatible with PHP's naming conventions by adding [] to the name):
formData.append('userpic[]', myFileInput.files[0], 'chris1.jpg'); formData.append('userpic[]', myFileInput.files[1], 'chris2.jpg');
This technique makes it simpler to process multi-file uploads because the resultant data structure is more conducive to looping.
If the sent value is different than String or Blob it will be automatically converted to String:
formData.append('name', true); formData.append('name', 74); formData.append('name', 'John'); formData.getAll('name'); // ["true", "74", "John"]
Specification | Status | Comment |
---|---|---|
{{SpecName('XMLHttpRequest','#dom-formdata-append','append()')}} | {{Spec2('XMLHttpRequest')}} | Initial definition |