それはWindowsのボックス上にHTTP経由のアップロードですが、ファイルの「のぞき見」する方法はありますか?

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

質問

私は、ASP.NETのWebサイトへのファイルアップロード機能を追加する必要があり、それはまだアップロードですが、サーバー上のファイルの小さな部分を読むことができるようにしたいと思います。私は内容を確認し、それがアップロードがまだある間、ユーザーにいくつかのフィードバックを与えることができるようにPEEKまたはプレビュータイプの機能(ここでは、大容量ファイルの話をしています)。これを実行する方法はありますか?私が選択した後、ファイルのバイトだけで固定された数をアップロードして、カバーの下に完全なファイルの別のアップロードを開始し、カスタムコントロールを書くの最悪のケースを考えています。ない完全に確認しても、これは可能ですが、私はとにかくよりエレガントな解決策を探しています...ありがとう!

役に立ちましたか?

解決

あなたが大規模なファイルのアップロード時に「死の白い画面」を避けたいように

これが鳴ります。もしそうなら、あなたは、 TelerikのRadUpload制御するに見たいと思うかもしれませんアップロード中にプログレスバーを提供します。

あなたが独自のロールしたい場合は、

、私はアイデアのために彼らのトライアル版を逆コンパイルしたいです。私は、このように自分のソースで覗くきた、と彼らは彼らのコントロールと一緒にカスタムHttpModuleをとのHttpHandlerを組み合わせてプログレスバーを達成します。ハンドラルートストリーミング方式でファイルモジュールは、「パーセント完全な」情報を提供しながら、 - または他の方法でラウンドを。私はそれを見ているので、それは数年されています。

編集

  実は、私は、ファイルがまだアップロードされているときに、サーバー側の処理をやろうとしています。私は、HTTP経由でインポートユーザーデータにしたいが、ファイルがまだアップロードされている間、我々は彼らのデータを処理します方法のプレビュー/オプション(カラム定義、など)をユーザに提示したいです。であるとして、アップロードが中断する必要はありませんので、ノーかは重要で、我々は、ファイルを取りますよ。私は実際にそれがアップロードされているとして、ファイルの比較的小さな部分を読みに基づいてアップロード中の対話を望んでいることを考えると、あなたはまだ同じアプローチを勧めますか?

うーん...それを行うのは非常に難しいだろう、それはクロスブラウザを動作しない可能性がありますが、それはこの方法で行うことができます。

それは私が述べたように、ストリームとして受信ファイルでの仕事に完全に可能ですので、あなたはそのストリーム処理の一環として、あなたのintial処理更新いくつかの状態を持つことができます。あなたはストリームとして処理しない場合、あなたはそれで何かを行うことができます前に、完全なファイルのアップロードを待たなければなりません。

問題はこれです:ファイルのアップロード時に、あなたは任意のより多くのHTMLベースの相互作用を持つことができません。ポストは衰えることなく続けなければならないか、アップロードは失敗します。ほとんどのブラウザではJavaScriptがPOST中にページのDOMを実行し、更新を継続することができますので、私はリンクコントロールは、すべてで動作します。

だから、この作品を作るために、あなたはのHttpHandlerによって処理されたコールHttpModuleを、XmlHttpRequestの経由でクライアントにバックを送信するファイルの処理中にいくつかの標準化状態のサーバ側を更新する必要があります。あなたは、ユーザーのためのUIを更新するために、純粋なJavaScriptの/ DOMを使用する必要があります。

私が言ったように、それは複雑だし、おそらくバギークロスブラウザであることを、それは理論的に行うことができる。

より安定したかもしれないalernativesがありますが、必ずしも実現可能ではない可能性があります:あなたは、ActiveXコントロールまたはアップロードする前に、ファイルを事前に処理することをクリックワンス.NETアプリケーションを構築することができ、そして多分非同期ファイル間を転送しますユーザーがブラウジングを続けています。一部のユーザーは、そのオプションのように、と私はあなたの展開シナリオの詳細を知らないかもしれないが、それはオプションです。

他のヒント

HTTPHEAD方法ではなく、PEEKがあります。

HEADはあなたのファイルに関する情報やヘッダを与えます。

もちろん、あなたが欲しいものを行う特別なリクエストハンドラを作ることができます。あなたは動的にしたい任意の応答を作成することができ、静的リソースで動作するように持っていません。

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