0

FirefoxでUploadifyを使用しても機能しませんが、Chromeでは機能します。Uploadifyから302エラーが発生し続けました。多くの頭を悩ませた後、これはFlashが要求(wtf?)にセッション情報を保持していないためであることがわかりました。CookieからセッションIDを取得し、それをuploadifyに渡して、「再構築」できるようにすることを含むいくつかの解決策を見ました。

ただし、セッションIDと認証IDはhttponly Cookieとして保存されるため、(私が知る限り)javascriptでアクセスできず、$。uploadify呼び出しはすべて厳密に.jsファイルにあります。すべてのソリューションは、Razorまたは元のレンダリングエンジンを使用してC#呼び出しでこれらのIDを取得することを示しましたが、これは私にはできません。

これを回避する方法はありますか、それとも、uploadify部分に到達するために、呼び出しビューから複数のjavascript呼び出しを介してこれらのIDを渡す必要がありますか?

4

2 に答える 2

0

これは*役に立ちますか?

Uploadifyでは、Flashファイルがバックエンドスクリプトと通信します。Flashのバグのため、セッションCookieはFlashファイルによって取得されません。これを回避するには、formDataオプションを介してセッションデータを渡す必要があります。PHPでこれを行うには、フロントエンドページでUploadifyを初期化するときに次のコードを使用します。

クライアント:

$('#file_upload').uploadify({
    // Your normal options here
    formData : { '<?php echo session_name();?>' : '<?php echo session_id();?>' }
});

サーバ:

$session_name = session_name();

if (!isset($_POST[$session_name])) {
    exit;
} else {
    session_id($_POST[$session_name]);
    session_start();
}

*確かにC#でも同じことができます。

于 2012-09-12T22:40:19.570 に答える
0

まあ、私は最終的に私があまり好きではない方法でそれを回避しました、しかしそれはしなければならないでしょう。$ .uploadifyの呼び出しがjavascriptファイルに含まれていたため、必要なCookieにアクセスできませんでした(HTTPONLY Cookieです)。そのため、簡単なサーバー呼び出しを行い、応答からCookieを取得して、formDataを介してそれらを渡しました。

于 2012-09-13T23:08:31.547 に答える