2012-04-17 111 views
0

我有点头痛,试图让Uploadify与Codeigniter一起工作。基本上我想要做的是上传多个文件,然后运行数据库查询将它的细节添加到我的数据库。我将在稍后添加更复杂的代码(如获取EXIF/IPTC数据),但现在我只需要它来获取每张照片上传后的文件名并插入数据库。Getting Uploadify使用Codeigniter - 302 HTTP错误

问题是我得到一个HTTP 302错误。我给自己定的:

$config['sess_match_useragent'] = FALSE; 

而且我也把我的.htaccess文件如下:

SecFilterEngine Off 
SecFilterScanPOST Off 

却引起了整个网站停止工作,抛出了一个“内部服务器错误” 。

我真的想要uploadify工作,这是伟大的,只是与Codeigniter的一个噩梦!

我的代码如下:在我看来

输入:

<input id="fileInput" name="fileInput" type="file" /> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
     $("#fileInput").uploadify({ 
      'uploader'  : '<?php echo base_url()?>assets/uploadify/uploadify.swf', 
      'script'   : '<?php echo site_url()?>/upload/do_upload/', 
      'cancelImg'  : '<?php echo base_url()?>assets/uploadify/cancel.png', 
      'fileExt'  : '*.jpg;*.jpeg', 
      'folder'   : 'assets/photos/highres', 
      'auto'   : true, 
      'multi'   : true, 
      'onError'  : function (event,ID,fileObj,errorObj) { 
          alert(errorObj.type + ' Error: ' + errorObj.info); 
         } 
     }); }); 

    </script> 

我的控制器:

public function do_upload() 
     { 
      // check for login, if logged in 
      if($this->session->userdata('logged_in') == "1") 
      { 
       $config['upload_path'] = 'assets/photos/highres/'; 
       $config['allowed_types'] = 'jpg'; 
       $config['max_size'] = '1000000'; 
       $config['overwrite'] = FALSE; 
       $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 
        $data = array(
            'id' => NULL, 
            'filename' => $upload_info['file_name'] 
           ); 
        $this->db->insert('photos', $data); 
        } 
      } 
      else 
      { 
       // redirect to signin page if not logged in 
       redirect('signin'); 
      } 
     } 

任何帮助最赞赏!

回答

2

改变文件/application/config/mimes.php 上

'jpeg' => array('image/jpeg', 'image/pjpeg'), 
'jpg' => array('image/jpeg', 'image/pjpeg'), 
'jpe' => array('image/jpeg', 'image/pjpeg'), 
'png' => array('image/png', 'image/x-png'), 

添加

'application/octet-stream' 

终于像这样

'jpeg' => array('image/jpeg', 'image/pjpeg', 'application/octet-stream'), 
'jpg' => array('image/jpeg', 'image/pjpeg', 'application/octet-stream'), 
'jpe' => array('image/jpeg', 'image/pjpeg', 'application/octet-stream'), 
'png' => array('image/png', 'image/x-png', 'application/octet-stream'), 
的默剧