React.js ライブラリ「use-file-upload」を使ってファイルをアップロードする

React.js ライブラリ「use-file-upload」を使ってファイルをアップロードする

ライブラリ「use-file-upload」をインストールすると、ファイルをアップロードすることが可能です。ここでは、react.jsでuse-file-uploadを利用するための手順と簡単な使い方を記述してます。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • node V12.16.3
  • npm 6.14.7
  • React 16.13.0

react.js環境構築

下記のコマンドで構築してます。ここでは、react-appという名前でプロジェクトを作成してます。

create-react-app react-app

use-file-uploadインストール

作成したプロジェクトに移動して、インストールします。

## 作成したプロジェクトに移動
cd react-app
 
## インストール
npm install use-file-upload

use-file-upload使い方

srcディレクトリにsample.jsと名前で下記のコードを記述します。

import React from 'react'
import { useFileUpload } from "use-file-upload";

const Sample = () => {
  const defaultSrc =
    "https://www.pngkit.com/png/full/301-3012694_account-user-profile-avatar-comments-fa-user-circle.png";

  const [files, selectFiles] = useFileUpload();
  return (
    <div>
      <img src={files?.source || defaultSrc} alt="preview" />
      <div>
        <button
          onClick={() =>
            selectFiles({ accept: "image/*" }, ({ name, size, source, file }) => {
              console.log("Files Selected", { name, size, source, file });
            })
          }
        >
          画像をアップ
      </button>
      </div>
    </div>
  );
}

export default Sample;

次に、srcディレクトリ配下にあるApp.jsを下記のように編集します。

import React from 'react';
import Sample from './sample';
import './App.css';

function App() {
  const style = {
    width: "50%",
    margin: "0 auto",
    marginTop: 150,
  };
  return (
    <div className="App">
      <div style={style}>
        <Sample />
      </div>
    </div>
  );
}

export default App;

App.cssにも、以下を追加します。

img {
  width: 100px;
  padding: 1em;
}

実行します。

npm start

ブラウザから http://プライベートIP:3000にアクセスすると、ファイルがアップロードできることが確認できます。