フォルダーをWebサイトにアップロードする最良の方法は何ですか?
-
05-07-2019 - |
質問
ユーザーが複数のファイルを一度にアップロードできるようにする簡単な方法が必要です(つまり、ユーザーがフォルダーをアップロードできるようにする必要があります)。ユーザーに圧縮の負担をかけたくありません。
可能であれば、Flashやバリアントを避けたいと思います。可能であれば、ストレートなJavaScript / HTMLソリューションを探しています。これは、 httpで複数のファイルをアップロードするのに最適なクライアント側ブラウザーライブラリは何ですか?。
解決
HTMLとJavascriptだけではできません。 ファンシーアップロード、 MooTools は、複数のファイルをアップロードするためのプラグインです。 JavaScriptとFlashの混合を使用しますが、適切に劣化します。 IE6を含むすべての主要なブラウザーで動作し、ダウンロード可能なFlash 10互換リリースもあります(ただし、デモはまだ更新されていません)。
更新(2012-11-26):
複数のファイルのアップロードは、 valums または blueimp ファイルアップローダー。
再帰ディレクトリアップロードの場合、最良の解決策は Chrome 11の新しい folder upload API 。ベンダープレフィックスを使用すると、Firefoxでも動作するようです。
他のヒント
Firefox 42とEdgeが新しいディレクトリアップロードの提案を実装したついにクロスブラウザのディレクトリアップロードが可能になります。 APIは非常に厄介なので、私のラッパー uppie を確認してください。
Flash(おそらくJava?)を避けている場合、JS / HTMLのみのソリューションでは単一ファイルのinput
が必要ですが、基本的にonchange
イベントを<=>にアタッチし、新しい<=>ファイルが選択されるたびにDOMに。
FTP?また、necsの場合は、Javaアプレット、ActiveX、または必要なものでラップします。
そうでない場合は、フラッシュは不要ですが、SWFUploadは非常にクールです。適切なオプションとして再検討することをお勧めします。
複数のファイルのアップロードは、 valums または blueimp ファイルアップローダー。
再帰ディレクトリアップロードの場合、オプションはさらに制限されます:
-
最良の解決策は、 Chrome 11の新しい folder upload API を使用することです。ベンダープレフィックスを使用すると、Firefoxでも動作するようです。
-
これは、 Javaアプレットを使用するクロスブラウザーでも可能です。ただし、最近ではJREをインストールした人の割合はかなり低くなっています( <!> lt; 70%)
これは純粋なjs / htmlソリューションではありません。 EndangeredMassaが指摘したように、それは不可能です。実際、このアイデアはIE / Windows専用のソリューションです。推奨しませんが、機能します。
したがって、すべての免責事項はさておき...
何年も前、数人の雇用者は、FileSystemObjectをインスタンス化するクライアント側の作業を行っていました。各ファイルを反復処理し、一度に1つずつサーバーに渡します。私たちがそれをどのように行ったかの詳細を思い出せません
とにかく、これは通常、クライアントボックスがサイトを信頼済みサイトのリストに追加する必要があり、信頼済みサイトにオフになっている許可の束を与える必要があることを意味します(非常に良い理由のため)。安全とマークされていないActiveXコントロールを初期化およびスクリプト化する機能のようなもの。そのようなこと。
これは完璧な答えではないことは知っていますが、正しい方向に導くことができます。
こちらは、ExtJSライブラリを使用した純粋なJSソリューションです