php保存图片进mysql的困惑

zhwb36 2005-08-19 11:33:08
我按照网上的范例按以下方式保存
if ($photo != "none")
{
////check photo extension
$pic_size = filesize($photo);
$pic = addslashes(fread(fopen($photo, "r"), $pic_size));
}

$sql = "UPDATE members SET photo = '$pic' WHERE id = '$id';";
图片显示楞是不成功
通过phpMyadmin直接修改那一行,把图片保存进mysql,显示就是正确的
我的代码有问题吗?
狂郁闷,帮我解决者一定大大加分!!!
...全文
149 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhwb36 2005-08-19
  • 打赏
  • 举报
回复
好像还是特殊字符的问题,我没用addslashes函数,有些中间没有特殊字符的图片插入和显示都正常

但这不用addslashes显然不行呀,要不有特殊字符的图片就进不了数据库啊
救命啊,没人遇到这种情况???
zhwb36 2005-08-19
  • 打赏
  • 举报
回复
怎么没人啊???
zhwb36 2005-08-19
  • 打赏
  • 举报
回复
To PcVSBirds(pc_birds) :
不行,你这根本就没改什么呀
PcVSBirds 2005-08-19
  • 打赏
  • 举报
回复
好了就回复以下
PcVSBirds 2005-08-19
  • 打赏
  • 举报
回复
if ($photo != "none")
{
////check photo extension
$pic_size = filesize($photo);
$pic = addslashes(fread(fopen($photo, "r"), $pic_size));
}

$sql = "UPDATE members SET photo = '".$pic."' WHERE id = '".$id.;
zhwb36 2005-08-19
  • 打赏
  • 举报
回复
终于搞定了,采用二进制方式读取文件,这种方式比文本方式读取可靠多了
$pic_size = filesize($photo);
$pic = fread(fopen($photo, "rb"), $pic_size);
$pic = '0x'.bin2hex($pic);
$pic_ext = $photo_type;
unlink($photo);

$sql = "UPDATE members SET photo = $pic WHERE id = '$id'";
注意$pic不要用单引号括起来



opqhjb_2002 2005-08-19
  • 打赏
  • 举报
回复
观注中........
zhwb36 2005-08-19
  • 打赏
  • 举报
回复
我现在这样做,不用addslashes,手工过滤
$pic_size = filesize($photo);
$pic = fread(fopen($photo, "r"), $pic_size);
$pic = str_replace("\x00", "\0", $pic);
$pic = str_replace("\x5C", "\\", $pic);
$pic = str_replace("\x27", "\'", $pic);
$pic = str_replace("\x22", '\"', $pic);

图片能出来了,但有失真
zhwb36 2005-08-19
  • 打赏
  • 举报
回复
你的语句还有问题呢,最后还少一个单引号
PcVSBirds 2005-08-19
  • 打赏
  • 举报
回复
仔细看

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧