ドラックアンドドロップでファイルをアップロードしたい
最近?のWEBサービスではよくファイルをアップロードする際ドラックアンドドロップで行う場合が多い。
今回はそれを自分のサービスの中にも使いたいと思い実装してみました。
Reactにはそんな願いを叶える便利なコンポーネントとしてreact-dropzoneというものがある。
今回はこれを使って手っ取り早く実装することにしました。
React-Dropzone
実装したサービスの画面はこれです。
ここにファイルをドラックアンドドロップで持っていくと、デベロッパーツールのコンソールにファイル名が表示されるサンプルを作りました。
実装のためにまずはreact-dropzoneをnpm経由でインストールします
npm install --save-dev react-dropzone
そして以下のようにコンポーネントを作成します。
import Dropzone from 'react-dropzone'; import React, {Component} from 'react'; import {render} from 'react-dom'; export default class UploadFile extends Component { handleOnDrop(files) { files.map(file => console.log(file.name)) } render() { return( <Dropzone onDrop={this.handleOnDrop} accept="image/gif,image/jpeg,image/png,image/jpg" > <div> Drag and Drop files Here! <p>format: gif/png/jpeg/jpg</p> </div> </Dropzone> ); } }
次回はアップロードされたファイルをサーバサイドにpostして保存するところまで行きたいと思います。