2013-05-21 139 views
0

我使用CI做了一個上傳表單。 現在我的照片上傳在C:\ XAMPP \ htdocs中\ ci_new \上傳* .JPGCodeigniter - 從瀏覽器加載圖像

我希望這些圖像是通過Web訪問,所以我可以添加到我的數據庫的路徑,但是當我嘗試通過localhost/ci_new/uploads/*。jpg加載它們會給我帶來錯誤 - 圖像文件不存在(因此我猜想我的文件夾的東西錯了。

你能告訴我在哪裏需要放置圖像,所以文件夾可以公開爲遊客,所以我可以填充路徑作爲我的數據庫中的網址。

如果需要,這是我上傳的代碼:

function do_upload(){ 
    $config['upload_path'] = './uploads'; 
    $config['allowed_types'] = 'gif|jpg|png'; 
    $config['max_size']='5000'; 
    $config['max_width'] = '1024'; 
    $config['max_height']= '768'; 

    $this->load->library('upload',$config); 

    if(!$this->upload->do_upload()) { 
     $error = array('error'=>$this->upload->display_erros()); 
     $this->load->view('upload_form', $error); 
    } else { 
     $data=array('upload_data'=>$this->upload->data()); 
     //$this->db->insert('images', $data); 
     $this->load->view('upload_success', $data); 
     print_r($data); 
    } 
} 

謝謝。

+0

你確定他們是不是有?這可能是一個權限問題。即他們在那裏,但沒有從瀏覽器查看的正確權限。 – stormdrain

+0

如果您有.htaccess文件,請確保它不會影響您的上傳路徑。如果你認爲它可能是,暫時移動或刪除.htaccess文件,然後看看你的圖像是否工作。 –

回答

0

確保您已經轉換了您的圖片文件名,以便轉換URL中不允許使用的特殊字符。

嘗試:

$filename = explode('.', $filename); 
$tmp_filename = str_replace(" ", "_", $filename[0]); 
       /* replaces space with '-' */ 
$tmp_filename = preg_replace('/[^A-Za-z0-9\-]/', '_', $tmp_filename); 
       /* removes special chars */ 
$tmp_filename = preg_replace('/_+/', '_', $tmp_filename); 
       /* replaces multiple '_' with single */ 
$filename = $tmp_filename. 
      '.' 
      .$filename[sizeof($filename)-1]; 
      /*Concatenating extension again.*/