5

SWFUpload v2.2、Firefox 3、IE 8、Flash 10 の使用 ASP.NET アプリケーションでは、すべてのアップロードが upload.aspx によって処理されています (設定オブジェクトに正しい upload_url が設定されています)。IE 8 では、アップロードは upload.aspx ページに到達して処理されますが、Firefox では処理されません。助言がありますか?

ユーザーがファイルをアップロードするためにアクセスするページのコードの大部分を次に示します (注: マスター ページが使用されています)。

<script type="text/javascript" src="../swfupload/swfupload.js"></script>

<script type="text/javascript" src="../js/handlers.js"></script>

<script type="text/javascript">
    var swfu;
    window.onload = function() {
        swfu = new SWFUpload({
            // Backend Settings
            upload_url: "../upload.aspx",
            post_params: {
                "ASPSESSID": "<%=Session.SessionID %>"
            },

            // File Upload Settings
            file_size_limit: "10 MB",
            file_types: "*.*",
            file_types_description: "All Files",
            file_upload_limit: 1,
            file_queue_limit: 1,
            //assume_success_timeout: 60,

            // Event Handler Settings - these functions as defined in Handlers.js
            //  The handlers are not part of SWFUpload but are part of my website and control how
            //  my website reacts to the SWFUpload events.
            file_queue_error_handler: fileQueueError,
            file_dialog_complete_handler: fileDialogComplete,
            upload_progress_handler: uploadProgress,
            upload_error_handler: uploadError,
            upload_success_handler: uploadSuccess,
            upload_complete_handler: uploadComplete,

            // Button settings
            button_image_url: "../Images/XPButtonNoText_160x22.png",
            button_placeholder_id: "spanButtonPlaceholder",
            button_width: 160,
            button_height: 22,
            button_text: '<span class="button">Upload File<span class="buttonSmall">(10 MB Max)</span></span>',
            button_text_style: '.button { font-family: Helvetica, Arial, sans-serif; font-size: 14pt; } .buttonSmall { font-size: 10pt; }',
            button_text_top_padding: 1,
            button_text_left_padding: 5,

            // Flash Settings
            flash_url: "../swfupload/swfupload.swf", // Relative to this file

            custom_settings: {
                upload_target: "divFileProgressContainer"
            },

            // Debug Settings
            debug: false
        });
    }
</script>
4

7 に答える 7

2

古い投稿ですが、今日同じ問題があったので、一部の人々の問題を解決するのに役立つかもしれません。

このスクリプトをデバッグする方法と場所がわからないため、ポスト配列を使用するのではなく、クエリ文字列を生成することでこの問題を解決しました

<script type="text/javascript">
    var swfu;
    window.onload = function() {
        swfu = new SWFUpload({
            // Backend Settings
            upload_url: "../upload.aspx",
            post_params: {
                SessionID: "<%=Session.SessionID %>",
                OtherID: "<%=OtherID %>"
            },

            //And here comes the highlight

            use_query_string : true,

            //code ...

この後、次のようなクエリ文字列を取得します。?SessionID=(id)&OtherID=(otherid)

これは、すべてのブラウザで保証付きで動作します。

于 2010-06-04T10:46:27.553 に答える
2

Safari や Chrome など、別のブラウザでもお試しください。

IE でのみ動作する場合は、おそらく他の回答で言及されている Flash Cookie Bug です。

Firefox 以外のすべてで機能する場合は、プログレス バー用に定義された css がない可能性があります。なぜこれが問題を引き起こすのかわかりませんが、問題があることがわかりました。サンプル スタイルを css ファイルに入れるとすぐに、Firefox で動作し始めました。

私が使用したcssは次のとおりです。

DIV.ProgressBar { width: 100px; padding: 0; border: 1px solid black; margin-right: 1em; height:.75em; margin-left:1em; display:-moz-inline-stack; display:inline-block; zoom:1; *display:inline; }
DIV.ProgressBar DIV { background-color: Green; font-size: 1pt; height:100%; float:left; }
SPAN.asyncUploader OBJECT { position: relative; top: 5px; left: 10px; }
于 2011-09-09T14:18:32.197 に答える
1

HTTPトレース/デバッグプロキシを使用して、サーバーに実際に送信されているものがあるかどうか、および受信されている応答がある場合はそれを確認します。Charlesは私のお気に入りで、Flash(およびその他すべてのHTTP)でうまく機能します。WireSharkとFiddlerは他のオプションです。

チャールズ http://www.xk72.com/charles/

WireShark http://www.wireshark.org/

フィドラー http://www.fiddler2.com/fiddler2/

于 2010-02-10T02:53:08.217 に答える
1

post_paramsSWFUpload init に変数を追加することで、同じ問題が修正されたことを確認したかっただけです。

post_params : {
    PHPSESSID : '<?=session_id()?>'
},
于 2013-03-08T08:19:26.510 に答える
1

http://demo.swfupload.org/Documentation/

クッキーの問題

Windows では、IE 以外の Flash Player プラグイン (FireFox、Opera、Safari など) は、使用するブラウザに関係なく、IE Cookie を送信します。これにより、多くのサーバー側スクリプト テクノロジの認証とセッションが中断されます。

開発者は、セッションと認証の Cookie 情報を手動で渡し、セッションを使用する場合はサーバー側で手動でセッションを復元する必要があります。

SWFUpload パッケージには、PHP および ASP.Net 用の回避策のサンプル コードが含まれています。

===== そこから1回限りの認証チケットを実装すると、うまく機能します

ユーザーがアップロードを使用している場合にのみこの認証が適用されることを条件付きにすることもできます。

ただし、このアクションで Cookie を発行する方法によっては、認証 Cookie がサイトの他の部分を回避しないことを確認するためのいくつかのテストが重要になる場合があります。

于 2011-01-28T01:20:39.823 に答える
0

私は答えを見つけました...ついに。私はこれに非常に長い間苦労していました。これが答えだなんて信じられない。その理由は SUBST です。

私は SSD ドライブを搭載したコンピュータを持っていますが、それは 256GB しかないため、パーティションを分割しないことにしました。ただし、C パーティションと D パーティションを分割するのが好きで、subst コマンドを使用して SSD ドライブでエミュレートしました。subst コマンドで作成したドライブからファイルを取得すると、swf アップロードが機能しません。信じられないかもしれませんが、開発用コンピューターでのみファイルをアップロードできないことを今日ようやく発見したのは事実です。

于 2015-09-19T21:44:56.687 に答える
0

この Flash バグが発生している可能性があります。Nort のソリューションは、ほとんどの人がそれに対処してきた方法です。ただし、言語/フレームワークによっては、サーバー側のコードを追加して、URL からセッション変数を取得し、それを現在のセッションとして強制的に使用する必要がある場合があります。

この StackOverflow questionの解決策を試すか、「フラッシュ アップロード Cookie 」などをグーグルで検索してみてください。

于 2010-11-09T00:29:25.737 に答える