图片存储 - 使用PHP保存图片同时保持源来图片的md5值

php中文网
发布: 2016-06-06 20:43:02
原创
1853人浏览过

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

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

代码如:

秘塔写作猫
秘塔写作猫

秘塔写作猫是一个集AI写作、校对、润色、配图等为一体的创作平台

秘塔写作猫 127
查看详情 秘塔写作猫

立即学习PHP免费学习笔记(深入)”;

<code class="lang-php">/**
* 加载图片
* 
*/
$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值:<br>'.md5($img); //图片md5

$fp2=@fopen($save_dir.'baidu-save.png','a');
fwrite($fp2,$img);
fclose($fp2);
unset($img,$url);

echo "\n";
$fmd5 = '通过fwrite保存图片MD5:<br>'.md5_file($save_dir.'baidu-save.png');
echo $fmd5;

echo '原图md5:<br>'.md5_file($save_dir.'baidu-org.png');
</code>
登录后复制

结果如:

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

回复内容:

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

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

代码如:

立即学习PHP免费学习笔记(深入)”;

<code class="lang-php">/**
* 加载图片
* 
*/
$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值:<br>'.md5($img); //图片md5

$fp2=@fopen($save_dir.'baidu-save.png','a');
fwrite($fp2,$img);
fclose($fp2);
unset($img,$url);

echo "\n";
$fmd5 = '通过fwrite保存图片MD5:<br>'.md5_file($save_dir.'baidu-save.png');
echo $fmd5;

echo '原图md5:<br>'.md5_file($save_dir.'baidu-org.png');
</code>
登录后复制

结果如:

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

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

<code>xxd logo_white_ee663702.png > logo_white_ee663702.hex
xxd baidu-save.png > baidu-save.hex
diff logo_white_ee663702.hex baidu-save.hex
</code>
登录后复制

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

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号