上传图片的困惑

哇塞,老兄这样的代码怎这样写
$file_name = "D:\\phproot\\rencai.jpg";
...
if ($fp = fopen($file_name, "r"))
{
$buf = fread($fp, $psize);
fclose($fp); //开了的句柄要关
}
else
$buf = 0;
if ($buf)
{
$imagecontent = addslashes($buf);
//光addslashes()好像还不行,ASCII在31以下的好像会有问题,自己试试
...
sybase_query(...);
}
---------------------------------------------------------------

没有用到过sybase,关注一下
---------------------------------------------------------------

这种问题我遇到过:
因为图片中存在一些字符,会让数据库产生误解
所以
把读出来的文件用base64_encode算一下再放到数据库
读文件的时候用base64_decode函数解码

---------------------------------------------------------------

1、表t_personalpub的f_photo1字段必须能存储二进制数据
2、$file_name="D:\phproot\\rencai.jpg";
$psize=filesize($file_name);
$imagecontent=addslashes(fread(fopen($file_name,"r"),$psize));
改成
$file_name="D:\\phproot\\rencai.jpg";
$imagecontent=addslashes(fread(fopen($file_name,"rb"),filesize($file_name)));
linux下可以不要“b”,按你的路径描述应该是在win下

---------------------------------------------------------------

BASE64编码是最好的解决办法

以前我都用XMLRPC通过BASE64编码传图片,一点问题都没有

Published At
Categories with Web编程
Tagged with
comments powered by Disqus