3

いくつかの解決策がありますが、完全に機能するものはありません。

プラットホーム

  1. ASP.NET / VB.NET / .NET 2.0
  2. IIS6
  3. IE6 (主に)、一部の IE7。Firefox は必須ではありませんが、便利です

許可されたサードパーティ オプション

  1. 閃光
  2. ActiveX (避けたい)
  3. Java (避けたい)

現在の試行

Gmail スタイル: JavaScript を使用して新しいアップロード要素 (input type='file') を追加し、ボタンをクリックするだけでそれらを一度にアップロードできます。これは機能しますが、それでも多くのクリックが必要です。(目に見えない ActiveX コントロールを使用して、ファイル サイズなどを検出することができました。これは便利です。)

Flash アップローダ: 1x1 のフラッシュ ファイルを使用してアップローダとして機能し、javascript で呼び出し可能な Flash Upload コントロールをいくつか発見しました。(そのようなコントロールの 1 つはFancyUpload、もう 1 つはDojo の Multiple File Uploader、さらにもう 1 つはCodeProject の darick_cによるものです。) これらは私を興奮させましたが、すぐに 2 つの問題に遭遇しました。

  1. Flash 10 では、複数ファイルのアップロード ダイアログ ボックスを呼び出すために使用される機能が壊れます。回避策は、透明なフラッシュ フレームを使用するか、フラッシュ ボタンを使用してダイアログ ボックスを呼び出すことです。それは大したことではありません。
  2. イントラネットで使用されている統合 Windows 認証は、Flash ファイルがファイルをアップロードしようとするときに使用されず、ユーザーに資格情報の入力を求めます。これを回避するには、Cookie を使用しないセッションを使用します。これは、他のいくつかの理由により、プロジェクトにとって悪夢となります。

Java アップローダ: Java ベースの複数ファイル アップローダがいくつかあることに気付きましたが、そのほとんどはお金がかかるようです。本当にうまく機能するものを見つけたら、それを購入するように手配できます. 私はむしろしないでください。私はそれらのほとんどの外見も好きではありません。私が FancyUpload を気に入ったのは、それが html/javascript とやり取りして、好きなように簡単にスタイルを設定したり管理したりできるからです。

ActiveX Uploader : ActiveX ソリューションも見つけました。ActiveX が動作するようです。それを買う代わりに、自分で書くだけです。これが最後の手段になると思います。

解像度

FancyUpload のようなものを使用できるようになりたいです。何らかの方法で資格情報のプロンプトを処理できれば、完璧です。しかし、私の調査によると、唯一の実際の回避策は Cookie を使用しないセッションであり、私にはそれができないようです。

したがって、質問は次のとおりです。上記の問題を解決する方法はありますか、または同じ目標を達成する、私がリストしていない別の解決策がありますか?

4

5 に答える 5

2

統合 Windows 認証の回避策はないと思います。できることは、ファイルを一般的な保護されていないフォルダーに保存し、swfupload の場合は、完全にアップロードされたときにハンドラーを使用してファイルを移動することです。

于 2008-09-16T08:58:25.500 に答える
1

当社は、この機能をサポートする ajaxuploader.com を使用しています。

于 2009-01-08T17:33:45.117 に答える
1

SWFUploadも試すことができます。Flash Uploader の「カテゴリ」に適合します。

于 2008-09-08T20:54:06.050 に答える
0

Internet Explorer では、FileReference.upload (フラッシュ アップロード)もCookieを送信します。

この動作は、他のブラウザーで実行している場合にのみ壊れます。

于 2008-09-16T08:49:57.033 に答える
0

@ davidinbcn.myopenid.co : 基本的には、この問題を解決した方法です。しかし、より詳細な回答を提供するために、ここにソリューションを投稿しています。

ソリューション!

2 つの Web アプリケーションや Web サイトなどを作成します。

アプリケーション Aは単純な Web アプリケーションです。このアプリケーションの目的は、ファイルのアップロードを受け取り、適切な場所に保存することです。これを匿名アクセスを許可するように設定します。次に、投稿されたファイルを受け入れて特定の場所に保存する単一の ASPX ページを作成します。(私はイントラネットでこれを行っています。インターネット サイトは、これを行うことでセキュリティ上の問題にさらされている可能性があります。その場合は、特別な予防措置を講じてください。) このページのコード ビハインドは次のようになります。

Dim uploads As HttpFileCollection = HttpContext.Current.Request.Files
If uploads.Count > 0 Then
    UploadFiles(uploads)
Else
    result = "error"
    err = "File Not Uploaded"
End If

アプリケーション Bは、ファイルのアップロードを許可するプライマリ サイトです。これを、匿名アクセスを許可しない認証済み Web アプリケーションとして設定します。次に、このサイトのページにFancyUpload (または同様のソリューション) を配置します。ファイルをアプリケーション A のアップロード ASPX ページに投稿するように構成します。

于 2008-10-27T15:35:07.910 に答える