【问题标题】:Upload problem with PHP: Thumbnail picking up the image namePHP 上传问题:缩略图获取图片名称
【发布时间】:2009-12-30 11:12:34
【问题描述】:

我有以下模型(codeigniter)代码来上传图片和缩略图。

但是图片路径的结果变成了images/comfort_big.jpg和images/comfort_big.jpg.jpg。

缩略图取图片名称并添加.jpg。

我正在为拇指上传图片/confort_thumb.jpg。

谁能告诉我怎么了?

if ($_FILES){
        $config['upload_path'] = './images/';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '200';
        $config['remove_spaces'] = true;
        $config['overwrite'] = false;
        $config['max_width']  = '0';
        $config['max_height']  = '0';

        $this->load->library('upload', $config);    
        if (strlen($_FILES['image']['name'])){
            if(!$this->upload->do_upload('image')){
                $this->upload->display_errors();
                exit();
            }
            $image = $this->upload->data();
            if ($image['file_name']){
                $data['image'] = "images/".$image['file_name'];
            }
        }

        if (strlen($_FILES['thumbnail']['name'])){
            if(!$this->upload->do_upload('thumbnail')){
                $this->upload->display_errors();
                exit();
            }
            $thumb = $this->upload->data();
            if ($thumb['file_name']){
                $data['thumbnail'] = "images/".$thumb['file_name'];
            }
        }
    }

【问题讨论】:

  • 附注:为什么要让用户同时上传全尺寸图像和缩略图,从全尺寸图像自动生成缩略图不是对用户更友好吗?跨度>

标签: php codeigniter file-upload


【解决方案1】:

我快速浏览了用户指南中的File Uploading Class
在偏好表中它指出:

注意:文件名不应包含文件扩展名。

所以我的猜测是你让用户命名文件

$config['file_name'] = "User defined";

或以编程方式删除扩展。既然你已经知道并列出了你可以做的扩展

$types = array(".gif",".jpg",".png"); 
$image['file_name'] = str_replace($types , "", $image['file_name'] );

【讨论】:

    【解决方案2】:

    您的问题是,当您创建拇指时,您传递的是完整图像。

    所以它会添加另一个扩展。

    使用下面的代码从文件名中删除扩展名。

    <?php 
        $filename=$image['file_name'];
    
        $file_name_with_dot = substr($filename,0, strrpos($filename, '.') + 1);
    
        $only_file_name = substr($file_name_with_dot,0,strlen($file_name_with_dot)-1);
    ?>
    

    现在将这个 $only_file_name 变量传递给您的 thumb 函数..

    最好使用从主图像自动创建拇指。

    希望这对你有帮助。

    【讨论】:

      猜你喜欢
      • 2011-07-04
      • 2012-09-02
      • 2014-04-30
      • 2011-10-30
      • 1970-01-01
      • 1970-01-01
      • 2015-10-22
      相关资源
      最近更新 更多