アップロードにJqueryとPHP(Zendフレームワーク)でSWFuploaderを使用しています
http://code.google.com/p/swfupload/
セッションの使用中に問題が発生しました。3 ステップ
のログイン ウィザード
があり、1 ステップ目はシンプルなフォームで、アップロードは2 ステップ目です。申請の流れは、1st stepのデータをsubmit後にセッションに格納し、2nd stepにリダイレクトします。いくつかのファイルをアップロードして、セッションに保存されているデータを使用しようとしても、何も得られません。
私はこのコードを使用しています:
JSコード
var settings = {
flash_url : "/javascript/flash/swfupload.swf",
upload_url: "/login/uploaditems",
post_params: {
'session' : <?php echo session_id;?>
},
file_size_limit : "1 MB",
file_types : "*.pdf;",
file_types_description : "All Files",
file_upload_limit : 100,
file_queue_limit : 10,
custom_settings : {
cancelButtonId : "cancelBtn"
},
debug: false,
button_image_url: "/images/chooseButton-2.png",
// The event handler functions are defined in handlers.js
file_queued_handler : fileQueued,
file_queue_error_handler :fileQueueError,
file_dialog_complete_handler : fileDialogComplete,
upload_start_handler : uploadStart,
upload_progress_handler : uploadProgress,
upload_error_handler : uploadError,
upload_success_handler : uploadSuccess,
upload_complete_handler : uploadComplete,
queue_complete_handler : queueComplete // Queue plugin event
};
Swfu1 = new SWFUpload(settings);
PHPコード:
if(isset($params['session'])) {
session_id($params['session']);
}
$uploadedFilesSession = new Zend_Session_Namespace('uploadedFiles'.$params['session']);
if(!isset($uploadedFilesSession->files))
{
$uploadedFilesSession->files = array();
}
if(!isset($uploadedFilesSession->files[$flag])){
$uploadedFilesSession->files[$flag] = array();
}
状態になるたびに!isset($uploadedFilesSession->files)になり、認証セッションもリセットされます。Safariでのみ発生しています。
私を案内してください。