php实现sybase读写blob类型。

mlm588 2005-07-07 11:56:39
我的代码如下:
uploadimg.php
<?
$fileUpload_size = $_FILES['file']['size'];
$fileHandle = fopen($file, "r");
$fileContent = fread($fileHandle, $fileUpload_size);
$fileContent = addslashes($fileContent);

$con = sybase_connect("linuxsvr", "sa", "");
sybase_select_db("dsuser",$con);
$sql = "set textsize 655350000 \n";
$sql = "update t1 set pic=NULL where id = 1 \n";
$sql="declare @val varbinary(16) \n";
$sql.="select @val = textptr(pic) from t1 where id=1 \n";
$sql.="writetext t1.pic @val '$fileContent'";

sybase_query($sql,$con);

$sql = "update t1 set size=".($fileUpload_size )." where id = 1";
sybase_query($sql,$con);
?>

viewimg.php
<?
$hostname="linuxsvr";
$username="sa";
$password="";


$link=sybase_connect($hostname,$username,$password) or die("无法连接数据库服务器!");
$db=sybase_select_db("dsuser",$link) or die("无法连接用户数据库—userdb!");

$sql = "select size from t1 where id=1";
$rs=sybase_query($sql) or die("无法执行SQL:$query");
$row = sybase_fetch_array($rs);

$query="set textsize 65530000 \n";
$query ="declare @val varbinary(16) \n";
$query.="select @val=textptr(pic) from t1 where id=1 \n";
$query.="readtext t1.pic @val 1 ".$row[0]."";
$result=sybase_query($query) or die("无法执行SQL:$query");
$arr = sybase_fetch_array($result);
header("Content-type: image/jpeg");
echo $arr["pic"];
?>
问题:
1、现在显示一些二进制代码:该如何显示图片。
2、文件大一些就读不出来了。



...全文
150 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mlm588 2005-07-14
  • 打赏
  • 举报
回复
已经解决一些。基本可以实现。存储和显示。但是当图片大于2兆sybase就会提示cache不足。改动sybase配置后,可以实现。但是尺寸大一些还是同样提示。感觉与sybase的配置无关。应该还是代码的问题。
关键代码:
$data=bin2hex($imagedata);
然后用insert into语句。
显示在转换回来。
这样一转换图片的尺寸会增大一倍。
大家有什么看法。

coolstr 2005-07-08
  • 打赏
  • 举报
回复
那个比较复杂难懂,这个

好像这样也是可以的吧。

<img src="echo $arr["pic"];" />
mlm588 2005-07-08
  • 打赏
  • 举报
回复
有人知道吗?
zhiin1 2005-07-07
  • 打赏
  • 举报
回复
关注一下

21,891

社区成员

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

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