JavaScript でファイルをアップロードする方法(例付き)
この記事では、ファイルピッカーダイアログからファイルを選択し、fetch
メソッドを使用して選択したファイルをサーバーにアップロードする方法について説明します。バックエンドサーバーストレージにファイルをアップロードするには、選択したファイルデータをフォームデータオブジェクトに追加する必要があります。
let formData = new FormData();
formData.append('file', fileupload.files[0]);
HTML で JavaScript を使用してファイルをアップロードする例
ファイル
タイプの入力フォームを作成して、PC /システムストレージから任意の拡張子のファイルを選択します。関数 uploadFile()
を呼び出すためのボタンがあります。この関数は、ファイルデータをフォームデータオブジェクトに追加し、fetch メソッドを使用してそのフォームデータをサーバーにアップロードするだけです。fetch
メソッドは、フロントエンドからバックエンドにデータを取得またはアップロードするための API 呼び出しとして、ネットワークリクエストの JavaScript で使用されます。
<!DOCTYPE html>
<html>
<head>
<title>
HTML | File upload example
</title>
<script type="text/javascript">
</script>
</head>
<body>
<h2>Hi Users Choose your file and Click upload.</h2>
<!-- Input Form Elements HTML 5 -->
<input id="fileupload" type="file" name="fileupload" />
<button id="upload-button" onclick="uploadFile()"> Upload file </button>
<!-- File Upload Logic JavaScript -->
<script>
async function uploadFile() {
//creating form data object and append file into that form data
let formData = new FormData();
formData.append("file", fileupload.files[0]);
//network request using POST method of fetch
await fetch('PASTE_YOUR_URL_HERE', {
method: "POST",
body: formData
});
alert('You have successfully upload the file!');
}
</script>
</body>
<html>
上記の HTML
ページのソースでは、choose file
をクリックしてユーザーのローカルシステムストレージからファイルデータを取得するための file
の単純な入力フォームタイプを確認できます。また、Upload file
ボタンを使用して関数を宣言し、機能を続行します。
このフロントエンド Web ページでは、選択したファイルの拡張子が付いた名前も表示されます。
ここでは、doctype html で javaScript
ステートメントを使用するために必要な <script>
タグを確認できます。これらのタグでは、uploadFile()
を宣言しています。
この関数にはフォームデータオブジェクトが含まれており、ファイルはそのフォームデータオブジェクトに追加され、fetch POST
メソッドを使用してネットワークリクエストを呼び出します。ファイルデータは、ネットワークリクエストの形式で送信されます。
次のステップで、function()
はユーザーにアラートボックスを表示します You have successfully upload the file!
ファイルが正常にアップロードされた場合。
JavaScript を使用してファイルをアップロード/選択する別の方法
以下に示すのと同じ結果を達成することもできます。document.createElement()
メソッドを使用して、type="file"
で <input>
要素を作成できます。
getElementById()
メソッドを使用すると、type="file"
で <input>
要素に簡単にアクセスできます。
var data = document.getElementById('my_file');
<button onclick="myFunction()">Choose file</button>
<script>
function myTestFunction() {
var data = document.createElement("INPUT");
data.setAttribute("type", "file");
document.body.appendChild(data);
}
</script>
上記の例では、document.createElement("INPUT");
が割り当てられた var data
関数、ファイルタイプでデータの属性を設定する必要があります
次のステップでは、document.body
のデータを使用して appendChild
する必要があります。