SWFUploadを使用して、画像をサーバーに正しくアップロードするようにしようとしています。ユーザーがブラウズボタンをクリックして自分のイメージファイルを選択すると、すぐにイメージがアップロードされないように、データを埋めるフォームがあります。ユーザーが送信ボタンをクリックするまで待ち行列に保持され、次にmySwfUploadInstance.startUpload()を呼び出してアップロードを開始します。SWFUpload startUpload()はfile_dialog_complete_handler内で呼び出されないと失敗します
しかし、それは 'callFlash' 関数でswfupload.jsのライン452で無残に失敗します。
Uncaught Call to ReturnUploadStart failed
このエラーをスローする前にキャッチされている例外は以下の通りです:
Object #<HTMLObjectElement> has no method 'CallFunction'
以下の機能:
SWFUpload.prototype.callFlash = function (functionName, argumentArray) {
argumentArray = argumentArray || [];
var movieElement = this.getMovieElement();
var returnValue, returnString;
// Flash's method if calling ExternalInterface methods (code adapted from MooTools).
try {
returnString = movieElement.CallFunction('<invoke name="' + functionName + '" returntype="javascript">' + __flash__argumentsToXML(argumentArray, 0) + '</invoke>');
returnValue = eval(returnString);
} catch (ex) {
throw "Call to " + functionName + " failed";
}
// Unescape file post param values
if (returnValue != undefined && typeof returnValue.post === "object") {
returnValue = this.unescapeFilePostParams(returnValue);
}
return returnValue;
};
movieElementは有効なフラッシュオブジェクトであるように見えます。
私はSWFUploadの初期化時file_dialog_complete_handlerに渡す関数内startUpload()を呼び出した場合、私はそのエラーを取得しない:
function ImageFileDialogComplete(numFilesSelected, numFilesQueued)
{
try
{
this.startUpload();
}
catch (ex)
{
this.debug(ex);
}
}
私は本当にユーザーが完了したときに、アップロードを延期できるようにする必要があり
フォームを開き、送信ボタンをクリックします。
ダイアログ完了ハンドラからstartUpload()を呼び出すと、SWFUPloadで何が問題になりますか?
この回答を投稿していただきありがとうございます。私は何時間ものデバッグを保存しました。 – Jeremy
もっと良い解決策がありますか?私はアップロード後にコンテナを隠す必要があります。 – Teddy
私はコンテナを隠す代わりに、より良い解決策を得ました。コンテナの幅と高さを1ピクセルに設定し、ブロックを表示しました。 – Teddy