BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #2973同步于 2009/2/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖

[合集] [求助]php向mysql插入图片的问题

coolfantasy
2009/2/23镜像同步0 回复
☆─────────────────────────────────────☆ happyc (RO) 于 (Mon Jan 12 17:36:52 2009) 提到: 我想向数据库存入一张gif格式的图片,图片大小都没问题,但就是进不去,不知道为什么!高手指点一下吧! 代码如下: $form_data_type = $_FILES ['file'] ['type']; $form_data = $_FILES ['file'] ['tmp_name']; db_connect ();//连接mysql db_select ();//选择数据库 $fileopen = fopen ( $form_data, "rb" ); $filesize = filesize ( $form_data ); $fof = fread ( $fileopen, $filesize ); $data = addslashes ( $fof ); fclose ( $form_data ); $query = "INSERT INTO address_pic (tra_id,pic_type,pic_bin) VALUES ('".$_POST['stra_id']."','$form_data_type','$data')"; mysql_query ( $query); 数据库结构:CREATE TABLE IF NOT EXISTS `address_pic` ( `tra_id` char(20) NOT NULL, `pic_type` char(20) default NULL, `pic_bin` longblob, PRIMARY KEY (`tra_id`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk; 如果用phpmyadmin插入图片完全可以,是以十六进制格式存放。难道非得让我先把图片二进制流转成十六进制再存?会不会是addslashes的问题? PS:magic_quotes_gpc=off ☆─────────────────────────────────────☆ happyc (RO) 于 (Mon Jan 12 22:39:23 2009) 提到: 问题是解决了,不过还是不明白,为什么图片没转成二进制流? ☆─────────────────────────────────────☆ ericyosho (ericyosho) 于 (Tue Jan 13 00:45:55 2009) 提到: fread的用法可以再看看。 ☆─────────────────────────────────────☆ happyc (RO) 于 (Tue Jan 13 11:22:54 2009) 提到: fread之后的结果我打印出来看是ASC2码,我看别人上传图片到mysql都是用的这个套路。 为什么呢?我把那些ASC2码直接变成16进制就能插入到数据库,但其他人上传图片也没我这么费事啊! ☆─────────────────────────────────────☆ happyc (RO) 于 (Tue Jan 13 18:09:09 2009) 提到: 最终问题是出在字符集上
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。