Я успешно реализовал uploadify в codeigniter следующим образом:
В представлении заголовка :
<script type="text/javascript" src="<?php echo base_url()?>resources/js/jquery.js"></script>
<link rel="stylesheet" type="text/css" media="all" href="<?php echo base_url()?>resources/uploadify/uploadify.css" />
<script type="text/javascript" src="<?php echo base_url()?>resources/uploadify/swfobject.js"></script>
<script type="text/javascript" src="<?php echo base_url()?>resources/uploadify/jquery.uploadify.v2.1.0.min.js"></script>
В представлении страницы :
<input id="fileInput" name="fileInput" type="file" />
<script type="text/javascript">
$(document).ready(function() {
$("#fileInput").uploadify({
'uploader' : '<?php echo base_url()?>resources/uploadify/uploadify.swf',
'script' : '<?php echo site_url()?>/managerupload/vehicle_imageUpload',
'cancelImg' : '<?php echo base_url()?>resources/uploadify/cancel.png',
'fileExt' : '*.jpg;*.jpeg;*.png;*.gif',
'folder' : '/nonexistant',
'auto' : true,
'multi' : false,
'scriptData' : {'vehicleID': '<?php echo $vehicleID?>'},
'onComplete' : function() {vImg_reload('<?php echo $vehicleID?>');}
}); });
</script>
Параметр конфигурации scriptData передается через POST.
ПРИМЕЧАНИЕ : опция конфигурации onComplete позволяет вам выполнять функцию;в этом случае это вызов Ajax для обновления изображений для текущего транспортного средства;это может или не может иметь отношение к вам.Дайте мне знать, если это так, и я опубликую это.Как бы то ни было, я бы не стал мутить воду.
В контроллере :
function vehicle_imageUpload(){
$this->_checklogin();
$file_dir = "vehicle_images/";
$config['upload_path'] = './vehicle_images/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '1000000';
$config['overwrite'] = TRUE;
$config['remove_spaces'] = TRUE;
$config['encrypt_name'] = FALSE;
$this->load->library('upload', $config);
if(! $this->upload->do_upload('Filedata')){
echo $this->upload->display_errors();
}else{
$errors = $this->upload->display_errors();
$upload_info = $this->upload->data();
// Insert file information into database
$insert_data = array(
'vImg_vehicle_id_fk' => $this->input->post('vehicleID'),
'vImg_filename' => $upload_info['file_name'],
'vImg_filepath' => $upload_info['file_path'],
'vImg_primary' => 1,
'vImg_directory' => $file_dir
);
$this->db->insert('vehicle_images', $insert_data);
}
}
Это стандартный обработчик загрузки, использующий класс загрузки CI;здесь мы использовали переданный POST-элемент «vehicleID», чтобы вставить запись изображения в базу данных.
Как и во всех флэш-материалах, вам нужно обойти Flash Cookie Bug .Есть два варианта: передать идентификатор сеанса через массив «scriptData» Uploadify (как описано выше) и перезагрузить сеанс из контроллера загрузки с существующим идентификатором сеанса.Другой вариант заключается в том, чтобы Codeigniter не совпадал с идентификатором пользователя сеанса.
In application / config.php
$config['sess_match_useragent'] = FALSE;
Это предотвращает уничтожение сеанса классом сеанса прион видит Useragent, который не принадлежит сеансу.
Если вы беспокоитесь о последствиях этого для безопасности, вам просто нужно помнить, что пользовательские агенты тривиальны, чтобы подделать, и до тех пор, пока ваша существующая безопасность надежно реализованане будет проблем.