2013-03-21 186 views
0

當我在本地主機上運行時,它很好。上傳server.one錯誤後拋出 - 即。 上傳目標文件夾似乎不可寫。 這是我的控制器 -Codeigniter - 上傳目標文件夾似乎不可寫

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(); 
     ?> 

我無法找到我的錯誤,確切位置在哪裏我錯了。有沒有人準備好幫助我PLZ?

+0

你確定你的上傳文件夾是可寫的嗎?我看到你正在嘗試chmod,但你有權限嗎?它可能是你的PHP用戶無法chmod它..爲此,您可能需要將其更改爲手動。 – Svetoslav 2013-03-21 11:50:03

+0

手動更改您的上傳文件夾權限! – Dino 2013-03-21 11:51:12

+0

我不知道如何檢查我的上傳文件夾是否可寫。請告訴我。 – 2013-03-21 12:00:48

回答

-1

我改變我的web服務器上傳文件夾爲可寫,所以現在看來​​工作。

0

如果該文件夾是用於加載文件的用戶比permisision 777是必需的。

您需要驗證哪些文件是通過上傳腳本加載的。您也可以使用.htaccess來允許或不允許從該目錄執行某些文件。

在codeigniter中上傳的文檔非常簡單直觀。同樣在這裏你可以看一些驗證上傳文件類型的方法http://ellislab.com/codeigniter/user-guide/libraries/file_uploading.html

相關問題