Codeigniter - 从浏览器加载图像

时间:2013-05-21 17:59:40

标签: php database codeigniter

我使用CI制作了一个上传表单。 现在我的照片上传到C:\ xampp \ htdocs \ ci_new \ uploads * .jpg

我希望这些图片可以从网上访问,所以我可以添加他们的路径到我的数据库,但当我尝试通过localhost / ci_new / uploads / * .jpg加载它时它给我错误 - 图像文件不是那里(我猜错了文件夹的东西)。

您能告诉我在哪里需要放置图片,因此该文件夹可以为访问者公开,因此我可以将路径填充为数据库中的URL。

如果需要,这是我的上传代码:

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);
    }
}

谢谢。

1 个答案:

答案 0 :(得分: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.*/