ほとんどのクライアントで問題なく動作する ASP.NET アプリケーションでフラッシュ アップローダを使用しています。ただし、組織内でプロキシ サーバーをセットアップしている場合、アップロードが断続的に失敗し、クラッシュが発生します。問題を調査したところ、これはプロキシ サーバーによって開始された "407 認証が必要です" 要求が原因であることがわかりました。HTTPS で実行されている Web サイト全体を切り替えてみたところ、この問題は解決したように見えますが、アプリケーション全体で他の 500 エラーが発生しました。一時的な修正として、サイトを HTTP で実行したまま、アップロード コンポーネントに対してのみ HTTPS を有効にしました。これで問題は解決したようです。
しかし、恒久的な修正を期待しているので、Flash コードでプロキシ例外 (407) を処理し、HTTPS 呼び出しで再発行しようと考えています (ただし、これが許可されているかどうかはわかりません)。HTTPStatusEvent を処理しようとすると、フィドラーを使用して正しく例外が発生しましたが、HTTPS 経由でアップロード リクエストを強制しても、それ以上のリクエストは送信されません。私がやっている以下のコードサンプルを見つけてください(ActionScript Flex 3)
_file.addEventListener(HTTPStatusEvent.HTTP_STATUS ,OnHttpError);
プライベート関数 OnHttpError(event:HTTPStatusEvent):void{ if (event.status==407){ Upload(true); } else{ HandleExceptions("Http エラー: ",event.status,""); } this.dispatchEvent(イベント); } public function Upload(enableHttps:Boolean=false):void{ _uploading = true; _bytesUploaded = 0;
var uploadURLTemp:String = _uploadUrl;
if(enableHttps==true){
uploadURLTemp = uploadURLTemp.replace("http://","https://");
}
_file.upload(new URLRequest(uploadURLTemp));
}
_file オブジェクトは FileReference オブジェクトで、_uploadURL はサーバーのアップロード ハンドラ URL です。これを行うことが許可されているかどうか、またはこれを処理するためのより良い方法があるかどうかはわかりません。
どんな考えやアイデアも大歓迎です
よろしく
シェリン