20110308--关于cgbt的图片上传修改

昨天发现,发布种子页面的 上传图片附件不可用。于是乎就开始了修改。

原来一直以为是权限问题。结果给排除了,原来是代码目录创建的位置不对,所以才无法上传。

 

 

修改了如下内容,使之能够进行图片上传

    修改 funcs.php 第1642             mkdir($attach_dir.'/'.$attach_subdir,0777);//要在形如attaments下新建如201103这种形式的文件夹。

修改了后就可以上传图片,下一个问题是图片无法在论坛里面显示,cgbt上传后的图片统一的进行了重命名  图片加上后缀 _ori ,这一步操作在funcs.php的1645左右操作,   无法显示的根本原因部署的cgbt  magicwand本应该对上传的文件进行相应的操作或,如bmp转jpg  jpg进行压缩, 处理后的图片要形成后缀  _s100的文件。  这一步操作在funcs.php 大约3000多行操作。可是部署的没有进行这种操作,或者说操作不正确, 处理后的图片放在了attaments文件夹下,在论坛显示的时候, 要把处理后的图片copy(应该copy后缀为_s100的)到 cache下, 并且从cache下显示。因为没有处理,所以没有生成要显示的图片。

 

   经过一天的修改,也没有修改的让magicwand处理图片成功。  于是换了中偷懒的方法,就是让论坛直接显示上传的原版文件

 

最后,修改的方法是:

 

 

  上传的图片,不让重命名为ori的后缀,这样可以让cache找到文件,虽然这是没有处理过的图片。

 

代码如下:

 

funcs.php  1649行

           $attach['attachment'] = preg_replace("/(php|phtml|php3|php4|jsp|exe|dll|asp|cer|asa|shtml|shtm|aspx|asax|cgi|fcgi|pl)(/.|$)/i", "_//1//2",$torrent_id.'_'.substr(md5($filename.microtime()), 26).random(6).$attach['ext']);

 

 

发现的技巧(没有修改,用到magicwand  是要修改的)


attachments.php 第三十行
if ($thumb)   修改为$attach["isimage"],功能是 在后最放加上 _s100

 

 

//自己写的处理图片的类

 function process_picture($src_pic,$dir,$filename,$width=100)
    {
      //  $watermark = 'watermark.png';
        $file= $src_pic;
        $small = $dir."/".$filename."_s100";
        //读入原图片
        $nmw =NewMagickWand();
        MagickReadImage($nmw,$file);
      //  $wm_pic = NewMagickWand();  //创建水印图片
        //MagickReadImage( $wm_pic, $watermark );
   
        $bg_h = MagickGetImageHeight( $nmw );
        $bg_w = MagickGetImageWidth( $nmw );
           
        //图片宽度小于定宽则不压缩
        if ($bg_w > $width) {
            $height = $width / $bg_w * $bg_h;
        }else {
            $height = $bg_h;
            $width = $bg_w;
        }
        $wm_h = MagickGetImageHeight( $wm_pic );
        $wm_w = MagickGetImageWidth( $wm_pic );
        $pos_x = $width - $wm_w - 10;
        $pos_y = $height - $wm_h - 10;
        MagickResizeImage($nmw, $width, $height, 13, 1);   //压缩图片
        //MagickCompositeImage($nmw, $wm_pic, MW_OverCompositeOp, $pos_x,$pos_y); //上水印
        MagickSetFormat($nmw, .$extension);
        MagickSetImageCompression($nmw, MW_JPEGCompression);
        MagickSetImageCompressionQuality($nmw, 90.0);
        MagickWriteImage($nmw,$small);                     //存储图片
        DestroyMagickWand($nmw);                           //释放内存
    }

select * from (select t1.[id] as t1_id,t1.[requestId] as t1_requestId,t1.[htqsrq] as t1_htqsrq,t1.[htjzrq] as t1_htjzrq,t1.[htbh] as t1_htbh,t1.[gf] as t1_gf,t1.[xf] as t1_xf,t1.[rq] as t1_rq,t1.[fkfs] as t1_fkfs,t1.[formmodeid] as t1_formmodeid,t1.[modedatacreater] as t1_modedatacreater,t1.[modedatacreatertype] as t1_modedatacreatertype,t1.[modedatacreatedate] as t1_modedatacreatedate,t1.[modedatacreatetime] as t1_modedatacreatetime,t1.[modedatamodifier] as t1_modedatamodifier,t1.[modedatamodifydatetime] as t1_modedatamodifydatetime,t1.[form_biz_id] as t1_form_biz_id,t1.[MODEUUID] as t1_MODEUUID,t1.[htfj] as t1_htfj,t1.[zje] as t1_zje,t1.[ds] as t1_ds,t1.[zjedx] as t1_zjedx,t1.[cspp] as t1_cspp,t1.[yfk] as t1_yfk,t1.[gxid] as t1_gxid,t1.[bz] as t1_bz,t1.[gfqymc] as t1_gfqymc,t1.[gfjc] as t1_gfjc,t1.[bh] as t1_bh,t1.[jylx] as t1_jylx,t1.[cght] as t1_cght,t1.[yf] as t1_yf,t1.[yfk1] as t1_yfk1,t1.[yf11] as t1_yf11,t1.[nf] as t1_nf,t1.[rksj] as t1_rksj,t1.[cclx] as t1_cclx,t1.[cgbt] as t1_cgbt,t1.[yfk2] as t1_yfk2,t1.[sywf] as t1_sywf,t1.[yfbl] as t1_yfbl,t1.[fhbl] as t1_fhbl,t1.[yfh] as t1_yfh,t1.[sykf] as t1_sykf,t1.[hzsdlqys] as t1_hzsdlqys,t1.[sys_workflowid] as t1_sys_workflowid,t1.[cgqzyz] as t1_cgqzyz,t1.[htwjpdf] as t1_htwjpdf,t1.[cghtlc] as t1_cghtlc,t1.[htzt] as t1_htzt,t1.[qzfs] as t1_qzfs,t1.[htwjtp] as t1_htwjtp,t1.[cgqzlc] as t1_cgqzlc,t1.[sjfk] as t1_sjfk,t1.[ydkds] as t1_ydkds,t1.[chpt] as t1_chpt,t1.[lxdhchr] as t1_lxdhchr,t1.[gxsjkx] as t1_gxsjkx,t1.[hkzt] as t1_hkzt,t1.[lcfkd] as t1_lcfkd,t1.[fkzlcid] as t1_fkzlcid,t1.[mode_top_4] as t1_mode_top_4,t1.[cgdj] as t1_cgdj,t1.[mode_top_22] as t1_mode_top_22,t2.[id] as t2_id,t2.[mainid] as t2_mainid,t2.[sld] as t2_sld,t2.[ppcj] as t2_ppcj,t2.[hsdj] as t2_hsdj,t2.[bz] as t2_bz,t2.[je] as t2_je,t2.[xhggyt] as t2_xhggyt,t2.[mxgxid] as t2_mxgxid,t2.[dqkckc] as t2_dqkckc,t2.[rkhkc] as t2_rkhkc,t2.[yf] as t2_yf,t2.[yldjbhyf] as t2_yldjbhyf,SELECT year(rksj) as 年 FROM uf_gfht as cus_年年 from uf_gfht t1 INNER join uf_gfht_dt1 t2 on t1.id = t2.mainid) tmp1错在哪里
05-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值