Apidog

オールインワン協働API開発プラットフォーム

API設計

APIドキュメント

APIデバッグ

APIモック

API自動テスト

Axiosでファイルアップロード?方法を複数ご紹介!

Axiosは、JavaScriptで使えるHTTPクライアントライブラリとして、APIとのやり取りが必要となる場合、よく利用さています。本文では、Axiosを使って、ファイルをアップロードしたい場合、その実現方法を複数みなさんに紹介していきたいと思います。

中村 拓也

中村 拓也

Updated on 11月 12, 2024

Axiosは、JavaScriptで使えるHTTPクライアントライブラリとして、APIとのやり取りが必要となる場合、よく利用さています。本文では、Axiosを使って、ファイルをアップロードしたい場合、その実現方法を複数みなさんに紹介していきたいと思います。

Axiosとは

AxiosはJavaScriptで使えるHTTPクライアントライブラリです。PromiseベースのAPIを提供しているので非同期処理が扱いやすく、JSONデータの自動変換も行ってくれるためレスポンスデータの処理がしやすくなっています。リクエストの送信とレスポンスの取得が簡単に実現可能なので、HTTP通信を行う際に便利なライブラリだといえます。

Axiosの公式サイト

Axiosでファイルのアップロードが可能?

ファイルのアップロードは、ローカル環境に保存されているファイルをサーバー上に送信するプロセスを指しています。フロントエンド開発の中で、よく<input type="file">要素を通じて、ファイル選択の機能を実現しています。そして、この要素をクリックして、ファイルを選択して、それをバックエンドのサーバーに送信できます。

Axiosでは、ファイルのアップロードを実現するために、複数の方法が利用可能です。例えば、 FormDataでアップロード、Content-Typeをmultipart/form-dataに設定してアップロードなどの方法があります。実際のファイルアップロードのプロセスの中、multipart/form-dataリクエストのフォーマットを使用すると、フォームデータをファイルと一緒にサーバーに送信できます。

Axiosでファイルのアップロード(File Upload)方法

前述のように、Axiosは、ファイルをサーバーにアップロードする場合、異なるシナリオに対応できるように、複数の方法を提供しています。次は、ユーザーに最も汎用されている方法を皆さんに紹介します。

FromDataオブジェクトの利用

FormDataはフォームデータを作成するためのAPIで、ファイルやその他のフォームデータを含むmultipart/form-dataリクエストを送信するのに使われます。これはファイルアップロードを処理する一般的な方法です。

FormDataオブジェクトを使うと、ファイルデータをフォームに追加でき、それをAxiosのpostputメソッドを使ってリクエストを送信できます。

具体的には、

new FormData()で空のFormDataオブジェクトを作成

formData.append()でファイルやその他のデータを追加

axios.post()axios.put()でリクエストを送信

という流れになります。FormDataを使うことで、ブラウザ上でのファイルアップロードを実現できるわけです。Axiosとの組み合わせで、非同期通信に強いHTTPクライアントを構築できます。

FromDataでファイルをアップロードするには、次のコードで実装して下さい:

const axios = require('axios');

const fileInput = document.querySelector('#fileInput');
const file = fileInput.files[0];

const formData = new FormData();
formData.append('file', file);

axios.post('/upload', formData, {
  headers: {
    'Content-Type': 'multipart/form-data'
  }
}).then(response => {
  console.log('成功', response.data);
}).catch(error => {
  console.error('失敗', error);
});

URLパラメータの利用

FromDataオブジェクト以外、URLのパラメータを使ってファイル名を指定してアップロードすることもできます。この方法は、バックエンド開発者にファイル名をURLに表示させたい場合で適用されています。

URLパラメータでファイル名を指定してファイルをアップロードするには、次のコードで実装して下さい:

const axios = require('axios');

const fileInput = document.querySelector('#fileInput');
const file = fileInput.files[0];

axios.post('/upload', file, {
  params: {
    fileName: file.name
  }
}).then(response => {
  console.log('成功', response.data);
}).catch(error => {
  console.error('失败', error);
});

Base64エンコードの利用

この方法は、ファイルをBase64エンコードの文字列に変換してから、JSONフォーマットを通じてデータをサーバーに送信します。Base64エンコードは、ファイルのデータを膨大化にすることがあるので、サイズが小さいファイルをアップロードする場合のみ適用されています。

Base64エンコードを利用して、ファイルをアップロードするには、次のコードで実装して下さい:

const axios = require('axios');

const fileInput = document.querySelector('#fileInput');
const file = fileInput.files[0];

const reader = new FileReader();

reader.onload = function(event) {
  const base64Data = event.target.result.split(',')[1];

  axios.post('/upload', {
    file: base64Data
  }).then(response => {
    console.log('成功', response.data);
  }).catch(error => {
    console.error('失败', error);
  });
};

reader.readAsDataURL(file);

Blob URLの利用

CreateObjectURL を使って、ファイルオブジェクトをBlob URLに変換することができます。そして、それをAxiosのリクエウスとのデータとして送信できます。
この方法でファイルアップロードを行うには、次のコードで実装して下さい:

const file = document.getElementById('file').files[0];

const blobUrl = URL.createObjectURL(file);

axios.post('/upload', blobUrl, {
  headers: {
    'Content-Type': 'multipart/form-data'
  }  
});

Apidogクライアントでファイルを1クリックでアップロード

Axiosは、ファイルをアップロードするために、たくさんの方法を提供していますが、ある程度のコーディング能力が必要となります。次は、Apidogという使いやすいAPIクライアントを使って、直感的な操作でファイルを選択して、1クリックだけでそれをサーバーに送信したり、アップロードしたりすることを実現する方法を皆さんに紹介します。

button

ステップ⒈既存のAPIを開くか、新しいAPIを新規に作成して、APIエンドポイントのURLを入力した上、HTTPメソッドをPOSTに指定します。

エンドポイントとHTTPメソッドを指定

ステップ⒉Body」タブに切り替え、Content-Typeを「from-data」にし、タイプのドロップリストから「file」を選択します。

from-dataを選択

ステップ⒊ここで、ファイルのアップロードボタンが表示され、そのボタンをクリックしてファイルを選択してアップロードすることができるようになります。

ファイルのアップロード

ステップ⒋ファイルをアップロードすると、「送信」ボタンをクリックして、そのファイルをAPIエンドポイントに送信して、レスポンスを取得することができます。ここで「実際のRequest」をクリックして、リクエストの具体的な送信状況を確認したりすることもで可能です。

レスポンスを確認
button
Postmanの基本的な使い方を(初心者向け)チュートリアル

Postmanの基本的な使い方を(初心者向け)

Postmanは、APIテストなどを行うための定番のツールになります。API戦略を実施する場合は、Postmanを利用することで、その効率性を大幅に向上できます。そこで、本文では、基本的なPostmanの使い方を皆さんに紹介して、Postmanを全く使ったことがないユーザーでも、本文の内容を参照して、Postmanを使いこなすことができると思います。

中村 拓也

4月 8, 2025

Clineで無料体験!Gemini 2.5 Proが今すぐ試せる方法チュートリアル

Clineで無料体験!Gemini 2.5 Proが今すぐ試せる方法

Clineを通じてGoogleのGemini 2.5 Proに無料でアクセスできることで、生産性を向上させ、複雑な問題解決に役立つ強力なAIアシスタントを提供。制約はあるものの、無料の利点は大きい。

中村 拓也

3月 28, 2025

Cloudflareで実現する高性能MCPサーバー構築ガイド:7ステップ完全解説チュートリアル

Cloudflareで実現する高性能MCPサーバー構築ガイド:7ステップ完全解説

このガイドに従えば、Cloudflareで高性能なMCPサーバーをデプロイし、拡張性、安全性、パフォーマンスを向上させることができます。すべての工程を詳細に解説します。

中村 拓也

3月 24, 2025