图片存储 - 使用PHP保存图片同时保持源来图片的md5值
ringa_lee
ringa_lee 2017-04-10 14:59:28
0
3
652

使用php下载图片的时候遇到md5问题, 源图片通过http://su.bdimg.com/static/superplus/img/logo_white_ee663702.png下载,
原图和curl获取到图片源时的md5一致,但使用php中的fwrite后就不行.

sf的朋友们: 如何用PHP保存图片的时候使得md5值不变!

代码如:

/** * 加载图片 * */ $save_dir = APP.'tmp'.DS; $url = 'http://su.bdimg.com/static/superplus/img/logo_white_ee663702.png'; $img = http_client_request( $url ); echo 'Curl获取的二进制流文件MD5值:
'.md5($img); //图片md5 $fp2=@fopen($save_dir.'baidu-save.png','a'); fwrite($fp2,$img); fclose($fp2); unset($img,$url); echo "\n"; $fmd5 = '通过fwrite保存图片MD5:
'.md5_file($save_dir.'baidu-save.png'); echo $fmd5; echo '原图md5:
'.md5_file($save_dir.'baidu-org.png');

结果如:

Curl获取的二进制流文件MD5值:
329b15e8ba7234317dc663f8ee663702
通过fwrite保存图片MD5:
d477312948ef7bd72c4209b8db707f68
原图md5:
329b15e8ba7234317dc663f8ee663702

ringa_lee
ringa_lee

ringa_lee

reply all (3)
洪涛

是不是因为已经存在baidu-save.png,然后fopen用了参数'a',于是加到尾部了。
改为'w'或者'wb'试试。

    左手右手慢动作
    xxd logo_white_ee663702.png > logo_white_ee663702.hex xxd baidu-save.png > baidu-save.hex diff logo_white_ee663702.hex baidu-save.hex
      刘奇

      fwrite($fp2,md5($img));

        Latest Downloads
        More>
        Web Effects
        Website Source Code
        Website Materials
        Front End Template
        About us Disclaimer Sitemap
        php.cn:Public welfare online PHP training,Help PHP learners grow quickly!