返回信息流☆─────────────────────────────────────☆
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) 提到:
最终问题是出在字符集上
这是一条镜像帖。来源:北邮人论坛 / database / #2973同步于 2009/2/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
[合集] [求助]php向mysql插入图片的问题
coolfantasy
2009/2/23镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。