上传的文件没有显示

时间:2014-02-20 06:15:18

标签: php codeigniter urlencode urldecode

<?php if($row->resumes != null){
         $attachment= base_url().'uploads/resumes/'.$row->resumes;
         echo '<a target="_blank" href="'.$attachment.'">
          Show Resume</a>';
      }
?>

假设我的文件名为my plan.pdf

所以,点击Show Resume然后在网址中打开就像, ../uploads/resumes/my%20plan.pdf 在我的简历文件夹中存储像my plan.pdf 404 Page Not Found错误即将来临

我试图使用urlencode&amp; urldecode,但它不起作用。

2 个答案:

答案 0 :(得分:0)

我不确定,但可能是白色空间的问题。 您可以在插入和检索时间时使用trim()。或阅读PHP Manual

答案 1 :(得分:0)

由于文件名中的空格,它不起作用。我建议您使用Codeigniter upload class(如果您还没有),并在上传之前从文件名中删除任何空格。

$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$config['file_name'] = preg_replace('/\s+/', '', $filename); //Remove all whitespace

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

文件上传后,您可以通过

获取文件的名称
$aUploadData = $this->upload->data();
$aUploadData['file_name'];

然后一旦你有值,你应该将它插入你的数据库,因为这样你就会知道存储在数据库中的值将与上传文件的名称相匹配

另外,作为额外检查,您应该在链接之前检查文件是否存在

<?php if($row->resumes != null) {
    if(file_exists(base_url().'uploads/resumes/'.$row->resumes)) {
        $attachment= base_url().'uploads/resumes/'.$row->resumes;
        echo '<a target="_blank" href="'.$attachment.'">Show Resume</a>';
    }
}

&GT;

希望有所帮助