Web フォームを使用して HTTP POST 経由でファイルをアップロードする最良の方法は何ですか?

StackOverflow https://stackoverflow.com/questions/11974

質問

基本的に、これよりも優れたものは次のとおりです。

<input type="file" name="myfile" size="50">

まず第一に、 browse ボタンの外観はブラウザごとに異なります。とは異なり、 submit フォーム上のボタンを使用するには、いくつか考え出す必要があります ハックっぽい それをスタイリングする方法。

次に、ファイルのアップロード量を示す進行状況インジケーターがありません。通常、複数の送信を無効にするためにクライアント側で何らかの方法を実装する必要があります (例:送信ボタンを「フォーム送信中...」と表示された無効なボタンに変更します。お待ちください。」)または巨大な警告を点滅させます。

Flash や Java を使用しない、これに対する良い解決策はありますか?

ヤーコフ:その製品はまさに私が探しているもののようですが、価格は 1000 ドルで、特に ASP.NET. 同じまたは類似の機能をカバーするオープンソース プロジェクトはありますか?

役に立ちましたか?

解決

Flash、Java、ActiveX などの他のテクノロジを使用したくない場合は、ファイル アップロード ボックスが現在のところです。

プレーンな HTML では、説明したエクスペリエンスにほぼ制限されます (進行状況バーがない、二重送信など)。JavaScript を使用してもよい場合は、アップロードが進行中であることをフィードバックすることで問題の一部を解決できます。 アップロードの進行状況を表示する (サーバーとの完全な往復を行う必要はないため、これはハッキングですが、少なくとも機能します)。

Flash (ほぼどこでも、多くのプラットフォームで利用可能) を使用する意欲があれば、これらの問題のほぼすべてを克服できます。簡単にグーグルで調べてみたら出てきた そのような コンポーネント、どちらも無料 そして オープンソース。どれも使ったことはありませんが、見た目は良さそうです。ところで、Flash にも問題がないわけではありません。たとえば、スライド共有にマルチファイル アップローダーを使用していると、ブラウザが常にクラッシュし続けました :-(

おそらく現時点での最善の解決策は、ユーザーが Flash を持っているかどうかを動的に検出し、そうであれば、基本的な HTML バージョンを選択できるようにしながら、ユーザーに Flash バージョンのアップローダーを提供することです。

HTH

他のヒント

をご覧ください。 ファンシーアップロード 脚本。フラッシュを使用していますが、それでもきれいに見えます。

ここでの問題は、ブラウザが基本的なファイル アップロードの入力コントロールを変更するものを特にブロックするように機能することです。たとえば、JavaScript を使用して変更することはできません。

その理由はセキュリティです。スクリプトを作成できれば、ユーザーがアクセスしたときにハードディスクからさまざまなファイルを送信するページを構築できます。よくない。

現時点ではさまざまな回避策がありますが、IEとFXでは異なります(Safari、Operaなどは知りません)。

見てください http://www.gmail.com 電子メールに何かを添付するときに、IE と FX で行われます。

私はそのゴミの「参照」ボタンを見たいのですが、これは予期せぬものを入れていないことを示しています。

確かに、ファイルのアップロード制御は明らかに時代遅れです。この問題は将来の asp.net バージョンで解決されることを願っています。

多少お金はかかりますが、こんなものを見つけました。 Telerik アップロード コントロール スタイルや進行状況の更新など、必要な機能をすべて備えています (大規模なアップロードのメモリも最適化されます)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top