HTMLツール

無料 ディレクトリアップロード入力ジェネレーター

フォルダアップロード用のwebkitdirectory付きHTMLファイル入力、ドラッグ&ドロップゾーン、webkitRelativePath付きファイルリストを生成します。

ツールを読み込み中...

ディレクトリアップロード入力ジェネレーターとは

input type=file要素のwebkitdirectory属性により、ユーザーは個別のファイルではなくフォルダ全体を選択できます。フォルダが選択されると、ブラウザは選択されたディレクトリとそのサブディレクトリからすべてのファイルをinput.files FileListに取り込みます。各ファイルにはwebkitRelativePathプロパティがあり、選択されたディレクトリへの相対パス(例:images/logo.png)を提供します。標準化されたdirectory属性は、モダンブラウザ全体で同じ機能を提供します。

クイックアンサー

input type=fileにwebkitdirectory属性を付けて使用すると、ユーザーがフォルダ全体を選択してアップロードできます。選択されたディレクトリ内の各ファイルは、選択されたフォルダへの相対パスを示すwebkitRelativePathプロパティを公開します。Chrome 30+、Edge 12+、Safari 11.1+、Firefox 50+でサポートされています。生成されたHTMLには、ドラッグ&ドロップゾーン、ディレクトリツリービュー付きファイルリスト表示、単一ファイル/複数ファイル/ディレクトリモードのサポートが含まれています。

Last updated: 2026-06-01

制限事項

  • webkitRelativePathはディレクトリピッカーを通じて選択されたファイルでのみ利用可能です。オペレーティングシステムからドラッグ&ドロップで追加されたファイルは、FirefoxとSafariではパス情報を持ちません。ただし、ChromeとEdgeはディレクトリのドラッグ&ドロップをサポートしています。
  • ディレクトリ入力のブラウザサポートはChromiumベースのブラウザとFirefoxでは強力ですが、Safariの実装は歴史的に遅れています。標準化されたdirectory属性はSafari 17+でサポートされていますが、古いSafariバージョンではwebkitdirectoryプレフィックスが必要です。
  • 大規模なディレクトリ選択(数千のファイル)は、ファイルリストが取り込まれて表示されている間、ブラウザタブがフリーズする可能性があります。大規模なディレクトリを扱う本番環境のデプロイメントでは、遅延レンダリングまたはWeb Workerを使用してください。

Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub

使い方

  1. アップロードモードを選択します。単一ファイル(一度に1ファイル)、複数ファイル(複数ファイルを選択)、またはディレクトリ(フォルダ全体を選択)。
  2. ドラッグ&ドロップゾーンを設定します。ドラッグ&ドロップサポートの有効/無効、ドロップゾーンテキストとアクティブ状態のスタイリング(ボーダー色、背景、オーバーレイ)をカスタマイズします。
  3. ファイルリスト表示をカスタマイズします。ファイル名、サイズ、タイプ、およびディレクトリアップロードのwebkitRelativePathを表示します。フラットリストとディレクトリ構造を保持するツリービューを切り替えます。
  4. 埋め込みCSSとJavaScriptを含む生成済みHTMLをコピーします。出力には、changeイベントとドラッグ&ドロップイベントのイベントハンドリングを備えた、完全で自己完結型のファイルアップロードインターフェースが含まれます。

主な用途

  • ディレクトリ構造を保持しながら、画像やMarkdownファイルのフォルダ全体を受け入れるドキュメントサイトのアップロードインターフェースを構築します。
  • 編集者がアセットのフォルダをドラッグ&ドロップし、相対パスをURLマッピングに使用するCMS用の一括ファイルアップロードツールを作成します。
  • エクスポートされたコンテンツのフォルダを受け入れ、webkitRelativePathを使用してサーバー上で元のディレクトリ階層を再構築する移行ツールを設計します。

用途

使用例

ドキュメント画像アップローダー

ドキュメントサイトで画像フォルダ全体のアップロードを受け入れる必要があります。ユーザーはassets/imagesディレクトリをドロップゾーンにドラッグします。入力はすべてのファイルを相対パスとともにリストします。hero/header.jpg、icons/search.svg、screenshots/dashboard.png。アップロード時にサーバーはディレクトリ構造を再構築し、パスを対応するドキュメントページのURLにマッピングします。

メールテンプレートアセットコレクター

メールデザイナーがキャンペーンのすべてのアセットを1回のアップロードで収集する必要があります。ディレクトリピッカーを使用してキャンペーンフォルダを選択します。インターフェースはサブディレクトリごとに整理されたファイルのツリーを表示します。images/headers/、images/icons/、images/logos/。各ファイルはサイズとタイプをwebkitRelativePathとともに表示し、サーバーサイド処理に使用します。

よくあるミス

  • webkitdirectoryをブラウザサポートを確認せずに使用する。Chrome、Edge、Safari、Firefoxでは動作しますが、すべてのブラウザでは動作しません。ディレクトリピッカーを表示する前に、document.createElement('input').webkitdirectoryを使用してサポートを検出し、常に通常のファイル入力へのフォールバックを提供してください。
  • webkitRelativePathがすべてのファイルで利用可能であると思い込む。ディレクトリピッカーを介して選択されたファイルのみがwebkitRelativePathを持ちます。ブラウザ外から(デスクトップからのドラッグなど)ドラッグ&ドロップで追加されたファイルには、ディレクトリ入力を通じて選択されない限り、このプロパティはありません。
  • ディレクトリに数千のファイルが含まれるケースを処理しない。ブラウザはディレクトリピッカーが返すファイル数に制限を設ける場合があり、すべてのファイルを一度にレンダリングしようとするとUIが遅くなる可能性があります。大規模なディレクトリではファイルリストをページネーションまたは仮想化してください。

検証

  1. 生成されたHTMLをChromeで開きます。ディレクトリピッカーをクリックし、サブディレクトリを含むフォルダを選択します。ファイルリストにすべてのファイルが正しいwebkitRelativePath値(例:subfolder/filename.ext)で表示され、ファイルサイズとタイプが正しく表示されることを確認します。
  2. ファイルエクスプローラからフォルダをドロップエリアにドラッグして、ドラッグ&ドロップゾーンをテストします。ChromeとEdgeでは、フォルダの内容が正しい相対パスで表示されることを確認します。FirefoxとSafariでは、代わりにディレクトリピッカーボタンの使用を促す役立つメッセージが表示されることを確認します。

FAQ

ディレクトリアップロード入力ジェネレーターのFAQ

webkitdirectoryと標準のdirectory属性の違いは何ですか?

webkitdirectoryはWebKitブラウザ(Chrome、Safari)からの元のプレフィックス付き実装です。標準のdirectory属性は同じ機能を提供し、Chrome 116+、Edge 116+、Safari 17.0+、Firefox 50+でサポートされています。どちらもFileオブジェクトにwebkitRelativePathを公開します。モダンブラウザには標準のdirectory属性を、古いChromiumバージョンにはwebkitdirectoryをフォールバックとして使用してください。

ディレクトリアップロードでドラッグ&ドロップを使用できますか?

はい。ただし制限があります。オペレーティングシステムのファイルマネージャからのフォルダのドラッグ&ドロップはChromeとEdgeで動作します。FirefoxとSafariはドロップゾーンへのフォルダのドラッグをサポートしていません。生成されたコードは両方のケースを処理します。フォルダのドラッグ&ドロップが利用できない場合のフォールバックとしてディレクトリピッカーを表示します。個別のファイルの場合、ドラッグ&ドロップはすべてのモダンブラウザで動作します。

webkitRelativePathはネストされたディレクトリでどのように機能しますか?

webkitRelativePathは、選択されたディレクトリからファイルへの完全なパスをフォワードスラッシュを区切り文字として提供します。たとえば、assetsという名前のディレクトリを選択し、これにimages/logo.pngが含まれている場合、各ファイルのwebkitRelativePathはimages/logo.pngになります。パスはオペレーティングシステムに関係なく常にフォワードスラッシュを使用します。このパスを使用してサーバー上でディレクトリ構造を再構築できます。

ディレクトリ入力はいくつのファイルを処理できますか?

仕様で定義された公式の制限はありませんが、ブラウザは実用的な制限を課します。Chromeは単一のディレクトリピッカーで約10,000ファイルに制限しています。より大きなデータセットの場合は、ファイルをバッチでアップロードするか、Web Workerを使用してUIをブロックせずにファイルリストを処理することを検討してください。生成されたコードのファイルリスト表示には、選択範囲の規模をユーザーが理解するのに役立つファイル数と合計サイズが含まれています。

関連ツール

その他のhtmlツール

こちらもお試しください

こちらもお試しください