<?php
// 作者:phpteam
// create table test (
// id int(11) not null  自动增加
// filename varchar(50) not null,
// picture text or blob
// )$filename = "test.jpg";
$fp = fopen($filename,"rb");
$picture = fread($fp,filesize($filename));
$picture = base64_encode($picture);
fclose($fp);// MYSQL的例子
$conn=mysql_connect("localhost","root","");
@mysql_select_db("test",$conn);
$query="insert into test (filename,picture) values ('$filename','$picture')";
$result=mysql_query($query);
$id=mysql_insert_id();
$query="select * from test where id='$id'";
$result=mysql_query($query);
$row=mysql_fetch_array($result);
// 通过ODBC操作的例子
$conn = odbc_connect("test","test","test");
$query = "INSERT INTO test (filename,picture) VALUES ('$filename','$picture')";
$result = odbc_exec($conn, $query);
$query="select @@IDENTITY as id";
$result = odbc_exec($conn, $query);
$id = @odbc_result($result, "id");
// 这段为读取内容
$query = "SELECT picture FROM test WHERE id='$id'";
$result = odbc_exec($conn, $query);
$picture = odbc_result($result, "picture");// 通过MSSQL操作的例子
$conn = mssql_connect("localhost","sa","");
@mssql_select_db("test",$conn);
// 这段为插入到MSSQL数据库
$query = "INSERT INTO test (filename,picture) VALUES ('$filename','$picture')";
$result = mssql_query($query);
$query="select @@IDENTITY as id";
$result = mssql_query($query);
$id = @mssql_result($result,0,"id");
// 这段为读取内容
$query = "SELECT * FROM test WHERE id='$id'";
$result = mssql_query($query);
$row = mssql_fetch_array($result);
$data = base64_decode($row[picture]);// 以下为输出到文件
//$fp = fopen($newfile,"wb");
//fwrite($fp,$data);
//fclose($fp);header("Content-type: image/jpeg");
echo $data;
?>

解决方案 »

  1.   

    是否必须先把图片上传到服务器上?代码中的 $picture 是什么值?是<input type="file" name="Photo" size="30" maxlength="255"> 这个冬冬提交的值吗?
      

  2.   

    返回很多乱码啊!怎么回事呢?
    有时候会出下面的错误:
    1、 message: 第 4 行: '敜叴暷凿籁蹬斟鮒fv問Χ浦骣7GWgw嚄Х亲琪' 附近有语法错误。 (severity 15) in C:\Apache2\htdocs\phplib\php\db_mssql.inc on line 652、message: 以 'v麞篧M殪v^=泞?囤睘撸o禑?倏z?S皤s,条v杯ub\\6?婸鮊晸vM6誩佼6[f眍m粙賑稻蟬俦o?$!\\g孖狎鮬燁\0U蓪?瘒寵难?遦??燠顏縟~祆?\0)%<?眫讯玳鷂????\0\0Fc\0\'隅\0' 开头的 标识符 太长。最大长度为 128。等等………………