我正在使用带有 Jquery 和 PHP(Zend 框架)的 SWFuploader 进行上传
http://code.google.com/p/swfupload/
我在使用会话时遇到问题。
有3 步登录向导,第 1 步是简单的形式,uplaoder 在第 2 步。应用程序的流程是,它在提交后将第一步数据存储在会话中并重定向到第二步。当我尝试上传一些文件并尝试使用存储在会话中的数据时,它什么也没给我。
我正在使用这个代码:
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 中。
请指导我。