不知道你用的是什么数据库,如果是oracle的话,你可以把相关字段设为Blob型,再用php编程将文件load进库就是了。$sql  =  "insert  into  mypic(id,  name,BINARYDATA)    values(mypic_id.nextval,  '$name',    EMPTY_BLOB())  RETURNING  BINARYDATA  into  :BINARYDATA";  
$stmt  =  @OCIParse($conn,  $sql);  
/**  生成一个本地LOB对象的描述符  */ 
$lob  =  @OCINewDescriptor($conn,  OCI_D_LOB);  
@OCIBindByName($stmt,  ':BINARYDATA',  &$lob,  -1,  OCI_B_BLOB); 
@OCIExecute($stmt); 
/**  载入文件  */ 
$lob->savefile($bfile); 
@OCIFreeDesc($lob); 
@OCIFreeStatement($stmt);

解决方案 »

  1.   

    我用的是oralce,我们的代码也错不多!我问你一句,$lob->savefile($bfile)
    这句代码里存放的是什么?
    是路径还是文件的内容数据?
    如果按你这样写的话,远程写入有可能会出现找不到文件呀是打不开文件的问题,不知道你试过没有,反正我是试过了!如果要存入数据库的数据文件是与服务器是本地关系,你的代码不会有问题,但是我问的是远程的,也是一个怎么读取远程文件的问题
      

  2.   

    <input type=file name=bfile>
    如果提交到服务器的话(即action=http://服务器处理文件路径)
    这时候就会产生一个临时文件在tmp,其文件名字存在$bfile所以服务器端可以通过$lob->savefile($bfile)载入文件
    因为这时候对服务器而言已经是相对本地文件了
      

  3.   

    <input type=file name=bfile>是这样么?
    你自己亲自试过么?这个时候提交到服务器的只是一个字符串,比如在我的机器D:盘根目录里有test.dat文件,那么服务器通过name获得只是:"D:\\test.dat",
    当它执行到$lob->savefile($bfile)时,php就会去服务器的d:盘根目录去找test.dat,而实际上这个文件在客户机器上,二者相距千里啊!!!!!:)
    你可以亲自己试试!
    ------------------------------------------------------
    纸上得来终觉浅,绝知此事要躬行!
      

  4.   

    <input type=file name=bfile>你选定一个本地文件后该文件就会自动传到服务器的临时目录。