我的控制器中有这段代码
class Upload_center extends Controller
{
function __construct()
{
parent::Controller();
$this->load->model('auth_model') ;
if(!$this->auth_model->authorize())
{
redirect('login');
}
}
我认为这段代码
$('#swfupload-control').swfupload({
upload_url: "<?=base_url()?>index.php/upload_center/upload",
file_post_name: 'fileupload',
file_size_limit : "200000000",
file_types : "*.zip;*.rar;*.pdf;*.doc;*.docx;*.mp3;*.avi;*.wmv;*.docx;*.jpg;*.jpeg;*.JPG;*.JPEG;*.png;*.gif;*.bitmap;",
file_types_description : "zip files ",
post_params: {"PHPSESSID": "<?=$this->session->userdata('session_id');?>"} ,
file_upload_limit : 1,
flash_url : "<?=base_url()?>js/jquery-swfupload/js/swfupload/swfupload.swf",
button_image_url : '<?=base_url()?>js/jquery-swfupload/js/swfupload/wdp_buttons_upload_114x29.png',
button_width : 114,
button_height : 29,
button_placeholder : $('#button')[0],
debug: false
我希望用户在登录后上传文件,因此我有一种方法需要用户登录才能继续上传文件。虽然我认为我使用的是 Flash Uploader,但我认为它没有传递会话值,并且 PHP 认为用户尚未登录,并将其重定向到登录页面。我发送phpsessionid
通过邮寄,但仍然没有成功。
您的会话 cookie 过期时间设置为多少? CodeIgniter 中有一个已知的错误,如果您停留在使 AJAX 请求超过 cookie 过期的页面上,它将重置数据库中的会话 ID,但无法在浏览器 cookie 中设置它,因为它是异步的要求。这会导致下一个非异步 GET 请求断开连接,从而导致会话库调用 sess_destroy()。如果这听起来像您的情况,请告诉我。否则,请提供更多详细信息。
Edit:也许我还应该在这里包含此错误的修复程序。在 /application/libraries 中创建一个名为“MY_Session.php”的文件(如果该文件尚不存在)。您可以在其中粘贴以下内容:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
* Session Class Extension
*/
class MY_Session extends CI_Session {
/*
* Do not update an existing session on ajax calls
*
* @access public
* @return void
*/
function sess_update() {
if ( !isAjax() ){
parent::sess_update();
}
}
}
?>
isAjax() 函数是我在 /application/helpers/isajax_helper.php 中的一个助手,如下所示:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* is_ajax_call
*
* Determines if the current page request is done through an AJAX call
*
* @access public
* @param void
* @return boolean
*/
if ( ! function_exists('isAjax')) {
function isAjax() {
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest';
}
}
?>
我的配置文件中引用了如下内容:
$autoload['helper'] = array('otherhelper1', 'isajax', 'otherhelper2');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)