Следуя инструкциям на форумах CI Мне удалось добиться того, о чем вы просите.
1) Поместите это в конфигурацию SWFUpload JS:
post_params: {"<?php echo $this->config->item('sess_cookie_name'); ?>" :"<?php echo $this->session->get_cookie_data(); ?>"},
2) И поместите файл MY_Session.php
в папку application/libraries/
.
3) Новая библиотека должна быть загружена в тот момент, когда загружается представление, если нет (по какой-то причине), тогда загрузите вашу библиотеку в контроллер.
PS: вам необходимо установить:
$config['sess_match_useragent'] = FALSE;
В противном случае для агента будет создан новый сеанс Shockwave Flash
РЕДАКТИРОВАТЬ: Хорошона основе вашего комментария .. вам действительно нужно установить настройку post_params
на текущую сессию, чтобы ее можно было отправлять, когда вспышка post
на ваш контроллер, теперь в вашем случае лучшее, что я могу придумать, это ниже:
Ваш externalUntouchableJsFile.js:
// JS scripts...
...
var swfu = new SWFUpload({
...
...
post_params: GLOBAL_VAR,
...
});
...
// rest of your JS
И в вашем представлении PHP и перед загрузкой этого файла JS есть что-то вроде:
<script>
var GLOBAL_VAR = {};
<?php if(session_is_there) { ?>
GLOBAL_VAR = {"<?php echo $this->config->item('sess_cookie_name'); ?>" :"<?php echo $this->session->get_cookie_data(); ?>"}
<?php } ?>
</script>
<script type="text/javascript" src="<?php echo base_url() ?>path/to/js/externalUntouchableJsFile.js"></script>
РЕДАКТИРОВАТЬ 2: Поскольку вы используете внешний файл js, вы можете забыть определить глобальную переменную, поэтому используйте:
post_params: (typeof GLOBAL_VAR === 'undefined') ? {}:GLOBAL_VAR,