使用codeigniter实现jquery上传插件’uploadify’

我怎么能在codeigniter中实现这个? Uploadify(jQuery的)

我的意思是控制器是什么? 如何追踪进度? 如果用户没有安装flashplayer,会发生什么?

我如何检查progess? 有没有人用codeigniter试过这个?

我已经在codeigniter中成功实现了uploadify,如下所示:

在标题视图中

    

在页面视图中

   

scriptData配置选项通过POST传递。

注意 :onComplete配置选项允许您执行function; 在这种情况下,它是一个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内容一样,您必须解决Flash Cookie Bug问题 。 有两个选项,通过Uploadify的’scriptData’数组传递您的会话ID(如上所述),并使用现有的会话ID从上传控制器重新加载会话。 另一个选择是没有Codeigniter匹配会话useragent。

在application / config.php中

 $config['sess_match_useragent'] = FALSE; 

这可以防止会话类在看到不属于会话的Useragent时销毁会话。

如果您担心这会对安全性产生影响,您只需记住用户代理很容易伪造,只要您的现有安全性得到妥善实施,您就不会有任何问题。

我正在寻找一个我正在研究的项目,但决定不使用它,因为我有原型,我无法让两者很好地协同工作。 我确实在旅途中找到了这个:

http://uploadify.com/forum/viewtopic.php?f=7&t=47&p=210&hilit=codeigniter#p1855

希望它有所帮助。

仅供参考,我最终使用了CI上传类,iframe和AJAX原型。 请在此处查看相关文章。

我们最近在我们正在研究的项目中使用它,我们只是将示例uploadify.php放在Web根目录中。

javascript和flash调用此文件来处理上传,我修改了uploadify.php来回显上传的文件数据。 从那里,原始页面上的javascript将一个隐藏的输入添加到我们正在使用的表单中。

当用户提交表单时,将调用A CI控制器/方法,这是处理resize/操作图像的方法。

如果您需要进一步说明,请告诉我。

编辑:要回答问题的其他部分,如果未安装Flash,则会显示常规文件输入元素。 我们使用它的方式,javascript是正确function所必需的,但这是一个设计选择。