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

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

中村 拓也

中村 拓也

23 7月 2025

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

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

Explore more

OpenClaw(Moltbot/Clawdbot)最新版へのアップデート方法

OpenClaw(Moltbot/Clawdbot)最新版へのアップデート方法

本記事では、OpenClaw(旧Moltbot/Clawdbot)のアップデート作業を安全に実施するための実務的な手順を整理する。更新前のインストールトポロジー確認、バージョン固定、永続データのバックアップ、ランタイム状態の記録といった準備工程に加え、リリースノートを基にしたマイグレーション影響の評価方法を解説する。さらに、プレプロダクションでのステージング検証、Docker Compose・Docker・ソース運用など構成別の更新手順、Apidogを用いたAPIコントラクト検証と回帰テストの実行による整合性維持について扱う。

12 2月 2026

macOS/Windows/LinuxへのOpenClaw (Moltbot/Clawdbot) インストール手順

macOS/Windows/LinuxへのOpenClaw (Moltbot/Clawdbot) インストール手順

本記事ではmacOS、Windows、Linux環境にOpenClaw(Moltbot/Clawdbot)をインストールするための手順を整理し、ランタイムバージョン、環境設定、サービス依存関係の管理ポイントを解説します。ネイティブセットアップとDocker Composeによる構成の違い、代表的なインストールエラーへの対応、導入後のAPI検証やApidogを用いたエンドポイントテストとドキュメント同期の方法も扱います。

11 2月 2026

GPT-5.3-Codexへのアクセス方法

GPT-5.3-Codexへのアクセス方法

GPT-5.3-Codex は、API 駆動型システムにおけるコード生成を主用途とするモデルであり、バックエンド実装やロジック構築に適した特性を持ちます。本記事では、その技術的特徴と適用範囲を整理します。

6 2月 2026

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる