メインコンテンツへスキップ

<Uploader /> コンポーネントの Props

<Uploader /コンポーネントは、フル機能のファイルアップロードインターフェースをReactアプリケーションに統合するための主要な方法です。これは、人気のあるUppyライブラリの上に構築されており、包括的なPropsセットを通じて高度にカスタマイズ可能です。このガイドでは、利用可能なすべての

<Uploader />コンポーネントは、フル機能のファイルアップロードインターフェースをReactアプリケーションに統合するための主要な方法です。これは、人気のあるUppyライブラリの上に構築されており、包括的なPropsセットを通じて高度にカスタマイズ可能です。このガイドでは、利用可能なすべてのPropsに関する詳細なリファレンスを提供し、アップローダーの動作、外観、および機能を特定のニーズに合わせて調整できるようにします。

主なProps

ここでは、<Uploader />コンポーネントに渡すことができるPropsの完全なリストを示します。

PropTypeDescription
idstringUppyインスタンスの一意の識別子。デフォルトは'Uploader'です。
popupbooleantrueの場合、アップローダーはインラインではなくモーダルダイアログとしてレンダリングされます。デフォルトはfalseです。
localestringUIの言語を設定します。サポートされている値には'en'、'zh'が含まれます。デフォルトは'en'です。
onAfterResponse(response: any) => voidすべてのHTTPレスポンス(TusとCompanionの両方から)の後に実行されるコールバック関数。
onUploadFinish(request: any) => voidファイルが正常にアップロードされた後に実行される重要なコールバック。requestオブジェクトにはuploadURLなどの詳細が含まれています。
onOpenFunctionアップローダーUIが開かれたとき(特にポップアップモードで)に実行されるコールバック関数。
onCloseFunctionアップローダーUIが閉じられたときに実行されるコールバック関数。
onChangeFunctionファイルが追加または削除されるたびに実行されるコールバックで、現在のすべてのファイルのリストを提供します。
pluginsstring[] or object[]有効にするUppyプラグインを設定するための配列。カスタムプラグインを渡すこともできます。詳細はプラグインの設定を参照してください。
installerPropsobjectMedia KitのComponentInstallerに渡されるProps。disabledやカスタムfallbackなど。
uploadedPropsobjectカスタム'Uploaded'プラグインの設定。paramsonSelectedFilesコールバックを含みます。
resourcesPropsobjectカスタム'Resources'プラグインの設定。paramsonSelectedFilesコールバックを含みます。
tusPropsTusOptions@uppy/tusプラグインに直接渡されるオプションのオブジェクト。すべてのオプションについてはTusのドキュメントを参照してください。
wrapperPropsHTMLAttributes<HTMLDivElement>メインのラッパーdiv要素に適用されるProps。sxclassNamestyleを含みます。
corePropsUppyOptionsUppyコアインスタンスに直接渡されるオプションのオブジェクト。ここでrestrictionsのようなグローバル設定を構成します。すべてのオプションについてはUppy Coreのドキュメントを参照してください。
dashboardPropsDashboardOptions@uppy/dashboardプラグインに直接渡されるオプションのオブジェクト。すべてのオプションについてはUppy Dashboardのドキュメントを参照してください。
apiPathPropsobjectアップローダーとCompanionのAPIエンドポイントを設定するためのオブジェクト。
dropTargetPropsDropTarget@uppy/drop-targetプラグインの設定。指定された要素へのドラッグアンドドロップによるアップロードを可能にします。
initialFilesany[]初期化時にアップローダーに事前に入力しておくファイルオブジェクトの配列。
imageEditorPropsImageEditorOptions@uppy/image-editorプラグインに直接渡されるオプションのオブジェクト。すべてのオプションについてはUppy Image Editorのドキュメントを参照してください。

主要なPropsの詳細

onUploadFinish

これは最も重要なコールバックの一つです。バックエンドによって各ファイルが正常に処理・保存された後にトリガーされます。このコールバックは、最終的なuploadURLやその他のメタデータを含むresultオブジェクトを受け取ります。これを使用して、アプリケーションの状態を更新したり、データベースに保存したりできます。

UploadHandler.jsx

javascript
import React, { useState } from 'react';
import Uploader from '@blocklet/uploader/react';

export default function UploadHandler() {
  const [fileUrl, setFileUrl] = useState('');

  const handleUploadFinish = (result) => {
    console.log('File uploaded:', result);
    // resultオブジェクトには、アップロードされたファイルの最終URLが含まれています
    if (result.uploadURL) {
      setFileUrl(result.uploadURL);
      // このURLをstateやデータベースに保存できます
    }
  };

  return (
    <div>
      <Uploader onUploadFinish={handleUploadFinish} />
      {fileUrl && <p>Last upload: <a href={fileUrl}>{fileUrl}</a></p>}
    </div>
  );
}

coreProps

このpropを使用すると、Uppyのコア設定に直接アクセスできます。主な使用例は、ファイルタイプ、ファイル数、ファイルサイズなどのアップロード制限の設定です。

RestrictedUploader.jsx

javascript
import Uploader from '@blocklet/uploader/react';

export default function RestrictedUploader() {
  const restrictions = {
    maxFileSize: 1024 * 1024, // 1 MB
    maxNumberOfFiles: 3,
    allowedFileTypes: ['image/jpeg', 'image/png'],
  };

  return (
    <Uploader
      coreProps={{
        restrictions: restrictions,
      }}
    />
  );
}

plugins

このpropを使用すると、Uploaderダッシュボードで利用可能なタブをカスタマイズできます。組み込みプラグインを有効または無効にしたり、独自のカスタムタブを追加したりすることもできます。

独自のプラグインを作成する方法についての詳細は、カスタムプラグインの作成ガイドを参照してください。

CustomPluginUploader.jsx

javascript
import Uploader from '@blocklet/uploader/react';
import { PhotoIcon } from '@heroicons/react/24/solid';

export default function CustomPluginUploader() {
  const customPlugins = [
    {
      id: 'MyCustomPlugin',
      options: {
        id: 'MyCustomPlugin',
        title: 'My Photos',
        icon: <PhotoIcon />,
      },
      onShowPanel: (ref) => {
        // カスタムパネルのコンテンツを表示するロジック
        console.log('Custom panel shown!', ref);
      },
    },
  ];

  return (
    <Uploader
      plugins={['Webcam', 'Url', ...customPlugins]}
    />
  );
}

apiPathProps

デフォルトでは、アップローダーは/api/uploads(Tusアップロード用)および/api/companion(リモートソース用)のエンドポイントと通信します。バックエンドの構成が異なる場合は、これらのパスを上書きできます。

CustomEndpoints.jsx

javascript
import Uploader from '@blocklet/uploader/react';

export default function CustomEndpoints() {
  const apiPaths = {
    uploader: '/custom/tus-endpoint',
    companion: '/custom/companion-endpoint',
  };

  return (
    <Uploader apiPathProps={apiPaths} />
  );
}

これらのpropsをしっかりと理解することで、Uploaderをさまざまなユースケースに合わせて設定できます。アップローダーをプログラムで開くなど、より高度な制御については、次のセクションUploaderProviderとHooksに進んでください。