-2

ローカルホストで実行しているときは問題ありません。server.one にアップロードした後、エラーがスローされました-つまり、アップロード先のフォルダーは書き込み可能ではないようです。これは私のコントローラーです-

function do_upload()
    {
        $path = './uploads/';
        chmod($path,0777);
        $config['upload_path'] = $path; 
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '1000';
        $config['max_width']  = '1024';
        $config['max_height']  = '768';
        $config['encrypt_name']  = TRUE;
        $this->load->library('upload', $config);

        if ( ! $this->upload->do_upload())
        {
            $error = array('error' => $this->upload->display_errors());

            $this->load->view('upload_form', $error);
        }
        else
        {
            $this->load->library('form_validation');
            $data = array('upload_data' => $this->upload->data());
            $pic_path= 'uploads/'.$data['upload_data']['file_name'];
            $this->form_validation->set_rules('txt_title','Title','trim|required|xss_clean');
            $this->form_validation->set_rules('category', 'Select Category', 'callback_select_validate');
            $this->form_validation->set_rules('description','Description','trim|required|xss_clean');
            if($this->form_validation->run() == FALSE)
            {
                redirect('upload');
            }
            else{
            $title =mysql_real_escape_string(htmlentities($this->input->post('txt_title')));
            $category = $this->input->post('category');
            $description = mysql_real_escape_string(htmlentities($this->input->post('description')));
            $this->load->model('user');
            $suc_mesg=$this->user->insertPic($pic_path,$category,$title,$description);
            $this->load->view('upload_success', $suc_mesg);
            }
        }
    }

これは私のビューページです-

 <?php 
        echo $error;
            echo form_fieldset('Upload Category Pics');

            echo form_open_multipart('upload/do_upload');
            echo '</br>';
            echo form_label('Title','title');
            echo '<input type="text" size="30" name="txt_title" placeholder="Enter title to pic"/>';
            echo '</br></br>';
            echo form_label('Choose Category Pics', 'category');
            $options = array(
                      'null' => '--Please Select--',
                      1  => 'Technology',
                      3    => 'Entertainment',
                      2 => 'Politics',
                      4   => 'Sports'
                    );

        echo form_dropdown('category', $options, 'category');
        echo "<br></br>";
        echo form_label('Description','description');
            $data = array(
                'name'        => 'description',
                'id'          => 'description',
                'placeholder'       => 'Enter description',
                'rows'        => '5',
                'cols'        => '40',
            );
        echo form_textarea($data);
        echo '</br></br>';
        echo form_label('Browse Pics','pics');
        echo '<input type="file" name="userfile" size="20" />';
        echo "<br></br>";
        echo '<input type="submit" value="upload" />';
        echo '</form>';
        echo form_fieldset_close(); 
        ?> 

正確にどこが間違っているのか、バグを見つけることができません。私を助ける準備ができている人はいますか?

4

2 に答える 2

0

フォルダーがユーザーによるファイルの読み込み用である場合は、権限 777 が必要です。

アップロード スクリプトを介してロードされるファイルを検証するのは、ユーザー次第です。また、.htaccess を使用して、そのディレクトリから特定のファイルを実行することを許可または禁止することもできます。

codeigniter にアップロードするためのドキュメントは非常にシンプルで直感的です。また、ここでは、アップロードされたファイルのタイプを検証するいくつかの方法を見ることができますhttp://ellislab.com/codeigniter/user-guide/libraries/file_uploading.html

于 2016-01-09T05:22:35.867 に答える
-2

Webサーバーのアップロードフォルダを書き込み可能に変更したので、動作しているように見えます。

于 2013-03-21T15:53:41.477 に答える