人人人妻人人人妻人人人,99精品国产综合久久久久五月天 ,欧美白人最猛性XXXXX,日韩AV无码免费播放

News新聞

業(yè)界新聞動(dòng)態(tài)、技術(shù)前沿
Who are we?

您的位置:首頁(yè)      樂道系統(tǒng)FAQ      樂道系統(tǒng)增加自動(dòng)縮略圖功能

樂道系統(tǒng)增加自動(dòng)縮略圖功能

標(biāo)簽: 發(fā)布日期:2014-04-26 00:00:00 1110

現(xiàn)有后臺(tái)在添加產(chǎn)品圖或文章圖的時(shí)候,無(wú)法自動(dòng)生成縮略圖,上傳兩次,操作頗有些不方便。因此增加自動(dòng)縮略圖功能。

1、后臺(tái)產(chǎn)品添加、修改模板

頭部JS(產(chǎn)品為例)

if(i == 0){
upload += '<li><input type="text" title="" class="input rounded" name="picture_url[]" id="picture'+ i +'" size="20" value="'+ picture_url[i] +'" /></li>';
upload += '<li><iframe src="upload.php?dir=product&preview=upload_preview&return_id=picture'+ i +'" width="183" height="30" border="0" scrolling="no" frameborder="0" id="upload_'+ i +'" style="visibility:hidden"></iframe></li><li>';
}else{
upload += '<li><input type="text" title="" class="input rounded" name="picture_url[]" id="picture'+ i +'" size="20" value="'+ picture_url[i] +'" /></li>';
upload += '<li><iframe src="upload.php?dir=product&preview=upload_preview&thumb_w='+picture[0][1]+'&thumb_h='+picture[0][2]+'&return_id=picture'+ i +'&makeThumb='+ i +'" width="183" height="30" border="0" scrolling="no" frameborder="0" id="upload_'+ i +'"></iframe></li><li>';
}
 
if(i == 0){
upload += '<input type="checkbox" id="auto_thumb" name="auto_thumb" checked="true" value="1" onclick="handleAutoThumb(this.checked)" />自動(dòng)生成商品縮略圖</label>  <a href="javascript:sheets(2);"><img src="../inc/templates/manage/images/operation/add_2.png" width="16" height="16" title="{:$lang['page']['add_upload']:}" /></a>&nbsp;';
upload += '<a href="javascript:sheets(1);"><img src="../inc/templates/manage/images/operation/cut_2.png" width="16" height="16" title="{:$lang['page']['del_upload']:}" /></a>';
}
 
增加部分
 
function handleAutoThumb(checked)
  {
 if(document.getElementById('upload_0').style.visibility=='hidden'){
  document.getElementById('upload_0').style.visibility='visible';
document.getElementById('upload_1').src='upload.php?dir=product&preview=upload_preview&return_id=picture1';
 }else{
  document.getElementById('upload_0').style.visibility='hidden';
document.getElementById('upload_1').src='upload.php?dir=product&preview=upload_preview&thumb_w='+picture[0][1]+'&thumb_h='+picture[0][2]+'&return_id=picture1&makeThumb=1';
 }
  }
 

2、上傳文件

 
$upload->makeThumb = $_GET['makeThumb']== 1 ? true : false; //是否開啟生成縮略圖 樂道增加 2014.4.26
$upload->thumb_w = $_GET['thumb_w']; //縮略圖寬 樂道增加 2014.4.26
$upload->thumb_h = $_GET['thumb_h']; //縮略圖高 樂道增加 2014.4.26
 
約57行
if($upload->makeThumb){
echo 'parent.document.getElementById("picture0").value = "'.$upload->new_filename_smalls.'";';  //縮略圖路徑 樂道增加 2014.4.26
}
 

3、上傳類文件

 
public $makeThumb = true;  //是否開啟生成縮略圖 樂道增加 2014.4.26
public $new_filename_smalls = '';  //縮略圖路徑 樂道增加 2014.4.26
public $thumb_w = '150'; //縮略圖寬 樂道增加 2014.4.26
public $thumb_h = '100'; //縮略圖高 樂道增加 2014.4.26
 
增加縮略圖函數(shù)
 
// 增加的縮略圖處理函數(shù) 樂道增加 2014.4.26
// 只考慮jpg,png,gif格式
     // $srcImgPath 源圖象路徑
     // $targetImgPath 目標(biāo)圖象路徑
     // $targetW 目標(biāo)圖象寬度
     // $targetH 目標(biāo)圖象高度
     public function makeThumbnail($srcImgPath,$targetImgPath,$targetW,$targetH)
     {
         $imgSize = GetImageSize($srcImgPath);
         $imgType = $imgSize[2];
         //@ 使函數(shù)不向頁(yè)面輸出錯(cuò)誤信息
         switch ($imgType)
        {
            case 1:
                $srcImg = @ImageCreateFromGIF($srcImgPath);
                break;
            case 2:
                $srcImg = @ImageCreateFromJpeg($srcImgPath);
                break;
            case 3:
                $srcImg = @ImageCreateFromPNG($srcImgPath);
                break;
        }
         //取源圖象的寬高
        $srcW = ImageSX($srcImg);
        $srcH = ImageSY($srcImg);
        if($srcW>$targetW || $srcH>$targetH)
        {
            $targetX = 0;
            $targetY = 0;
            if ($srcW > $srcH)
            {
                $finaW=$targetW;
                $finalH=round($srcH*$finaW/$srcW);
                $targetY=floor(($targetH-$finalH)/2);
            }
            else
            {
                $finalH=$targetH;
                $finaW=round($srcW*$finalH/$srcH);
                $targetX=floor(($targetW-$finaW)/2);
            }
              //function_exists 檢查函數(shù)是否已定義
              //ImageCreateTrueColor 本函數(shù)需要GD2.0.1或更高版本
            if(function_exists("ImageCreateTrueColor"))
            {
                $targetImg=ImageCreateTrueColor($targetW,$targetH);
            }
            else
              {
                $targetImg=ImageCreate($targetW,$targetH);
            }
            $targetX=($targetX<0)?0:$targetX;
            $targetY=($targetX<0)?0:$targetY;
            $targetX=($targetX>($targetW/2))?floor($targetW/2):$targetX;
            $targetY=($targetY>($targetH/2))?floor($targetH/2):$targetY;
              //背景白色
            $white = ImageColorAllocate($targetImg, 255,255,255);
            ImageFilledRectangle($targetImg,0,0,$targetW,$targetH,$white);
            /*
                   PHP的GD擴(kuò)展提供了兩個(gè)函數(shù)來(lái)縮放圖象:
                   ImageCopyResized 在所有GD版本中有效,其縮放圖象的算法比較粗糙,可能會(huì)導(dǎo)致圖象邊緣的鋸齒。
                   ImageCopyResampled 需要GD2.0.1或更高版本,其像素插值算法得到的圖象邊緣比較平滑,
                                                             該函數(shù)的速度比ImageCopyResized慢。
            */
            if(function_exists("ImageCopyResampled"))
            {
                ImageCopyResampled($targetImg,$srcImg,$targetX,$targetY,0,0,$finaW,$finalH,$srcW,$srcH);
            }
            else
            {
                ImageCopyResized($targetImg,$srcImg,$targetX,$targetY,0,0,$finaW,$finalH,$srcW,$srcH);
            }
              switch ($imgType) {
                case 1:
                    ImageGIF($targetImg,$targetImgPath);
                    break;
                case 2:
                    ImageJpeg($targetImg,$targetImgPath);
                    break;
                case 3:
                    ImagePNG($targetImg,$targetImgPath);
                    break;
            }
            ImageDestroy($srcImg);
            ImageDestroy($targetImg);
        }
         else //不超出指定寬高則直接復(fù)制
        {
            copy($srcImgPath,$targetImgPath);
            ImageDestroy($srcImg);
        }
     }
 
原來(lái)的
if(@copy($this->field['tmp_name'],$target) || (function_exists('move_uploaded_file') && @move_uploaded_file($this->field['tmp_name'],$target))){
@chmod ($target,$this->chmod_files); 
 
后增加
 
if($makeThumb = $this->makeThumb){  //樂道增加 2014.4.26
$small_pic = $this -> makeThumbnail($target,$this->save_dir."small_".$this->new_filename,$this->thumb_w,$this->thumb_h);//120,90為小圖寬,高
$this->new_filename_smalls = $this->save_dir."small_".$this->new_filename;
} //樂道增加 2014.4.26