0

Uploadify を Codeigniter と連携させようとして頭が痛いです。基本的に私がやろうとしているのは、複数のファイルをアップロードしてから、db クエリを実行してその詳細を自分の db に追加することです。後でより洗練されたコード (EXIF/IPTC データの取得など) を追加する予定ですが、今のところは、アップロード後にファイル名を取得して各写真のデータベースに挿入するだけです。

問題は、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');
            }
        }

どんな助けでも大歓迎です!

4

1 に答える 1

2

変更ファイル /application/config/mimes.php 追加

'application/octet-stream'

の上

'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'),

そして最後に、このようなパントマイム

'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'),
于 2012-05-31T12:23:41.957 に答える