关注此贴:
http://www.csdn.net/Expert/TopicView1.asp?id=1086705
那个代码本来就是为你写的,想不到我先碰到问题了,呵呵。

解决方案 »

  1.   

    //$contents就是从数据库读出的字符串//-----------读取
    $filename = "F:/mm/M23406.jpg";
    $fd = fopen ($filename, "r");
    $contents = fread ($fd, filesize ($filename));
    fclose ($fd);
    //将$contents存入数据库中即可
    //----------输出
    //从数据库读出数据赋给$contents
    $filename = "aaa1.jpg";
    $fd = fopen ($filename, "w");
    fwrite($fd,$contents);
    fclose ($fd)
      

  2.   

    如果对处理时间要求不是很高,插入数据前可以进行base64编码,出来后再解码
    可以防止很多字符变换得错误发生。
      

  3.   

    可以把文件另外copy到硬盘上,数据库里只放文件名和路径名
      

  4.   

    1、结构:
    CREATE TABLE [dbo].[test] (
    [id] [int] IDENTITY (1, 1) NOT NULL ,
    [filename] [varchar] (50) NULL ,
    [picture] [text] NULL 
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    GO
    2、代码:
    <?php
    $filename = "test.jpg";
    $fp = fopen($filename,"rb");
    //$picture = fread($fp,filesize($filename));
    while(!feof($fp))
    {
      $picture.=fread($fp,1024);
    }
    $picture = base64_encode($picture);
    fclose($fp);
    $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]);
    header("Content-type: image/jpeg");
    echo $data;