2013-05-21 123 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.*/