自动生成缩略图问题

2016-07-07 15:06 来源:www.chinab4c.com 作者:ecshop专家

我想缩略图和我上传的文件一样的名称,只要放在不同目录就可以了,请问可以实现嘛?
该怎么做?

回答:
需要较为复杂的修改。高手解答。

没去看这个,所以希望有人直接解答下,会很复杂?
不了解,希望有高手帮忙谢谢啦

介绍一个方法
1、修改cls_image.php
function make_thumb($img, $thumb_width = 0, $thumb_height = 0, $path = '', $bgcolor='')
改为function make_thumb($img, $thumb_width = 0, $thumb_height = 0, $path = '', $bgcolor='',$same_filename = 0)
2、搜索if (!file_exists($dir)) 在前面加上if($same_filename == 1)$dir = $dir.'image_thumb/';
if($same_filename == 1)$dir = $dir.'image_thumb/';
/* 如果目标目录不存在,则创建它 */
if (!file_exists($dir))
3、修改文件名 $filename = $this->unique_name($dir);改为下面的代码
/* 如果文件名为空,生成不重名随机文件名 */
if($same_filename == 1)
$filename = basename($img);
else
$filename = $this->unique_name($dir);
4、修改admin/good.php文件
$image->make_thumb('../' . $original_img, $GLOBALS['_CFG']['thumb_width'],$GLOBALS['_CFG']['thumb_height']);
改为
$image->make_thumb('../' . $goods_img, $GLOBALS['_CFG']['thumb_width'],$GLOBALS['_CFG']['thumb_height'],'','',1);

再添加商品以后在图片的image_thumb文件夹下面就有同样文件名的缩略图了


先谢谢楼上的,试试

我把问题再说清楚些,是想把100*100的图片和230*230的图片名字取的一样,然后把他们放在不同文件夹就可以了(他们好像本来就不在同一文件夹),希望楼上的高手能再帮忙下,我也会就您的思路先自己看看,再次谢谢

没有人帮下了么?弄了半天,总弄不到他的文件名,很郁闷

红色的地方照着改一下就行了

我早上按你说的改,好像能达到一些,但是现在改好像不行了。。。我非常郁闷,哎

应该没问题 ,自己看看代码把,修改的也就那么几个地方,看报什么错误之类的

没有报错,但是效果不能实现
现在的效果变成,在缩略图的一张图片,被创建到自己建的文件夹
名字也还是不对,自己文件夹的名字全是数字

。。。要所有的缩略图都是这样的效果? 那我还真没时间给你去找了,自己看看代码把,整个的实现就是处理的那个函数

不是整个,而是效果不对
比如230*230的图片名字是AA.JPG,那么100*100缩略图的名字也是AA.JPG
只是他们放在不同的文件夹,其他都无所谓,就是这个效果

而你现在的效果完全不对哦。。。
最关键的名字不一样

不好意思楼上的兄弟,改错地方了
要修改C:\Inetpub\wwwroot\ecshop\admin\includes\lib_goods.php 里面的函数
function reformat_image_name($type, $goods_id, $source_img, $position='')
修改为function reformat_image_name($type, $goods_id, $source_img, $position='',$target_img='')

$img_name = $goods_id . '_thumb_G_' . $rand_name;
改为
if($target_img!='')$img_name=substr(basename($target_img),0,strpos(basename($target_img),"."));
else
$img_name = $goods_id . '_thumb_G_' . $rand_name;

C:\Inetpub\wwwroot\ecshop\admin\goods.php 里面
$goods_thumb = reformat_image_name('goods_thumb', $goods_id, $goods_thumb, 'thumb');
修改为
$goods_thumb = reformat_image_name('goods_thumb', $goods_id, $goods_thumb, 'thumb',$goods_img);

经过测试是没问题了