别用addslashes,尝试一下base64_encode/decode可能会更好。

解决方案 »

  1.   

    楼上谢谢了!base64上面这种方式我在开始调试的时候已经试过了。可以成功,但是这个不是我需要的。问题是另外一方面可能有个delphi的程序也可以操作。我如果base64的话,他要改动。
    况且我这边是协作,我不是主要的。呵呵
      

  2.   

    @楼上我建议你这样来看看吧:经过你这样一个周期的add/stripslashes,得到的$file内容dump一下,然后和你写进数据库前读到的$file内容比较一下吧。我是深度怀疑这个add/strip恐怕并不是完全可逆的吧。用base64是最好的解决知道。我曾经在Delphi中写,然后在PHP中读,是可以的。
      

  3.   

    对我也怀疑这个add/strip不可信。base64解决的是不错。请问楼上你再delphi写图片格式到sqlserver里的image字段是怎么实现的?如果不用base64的话有其他解决办法么?delphi的解决方法。
      

  4.   

    @楼上首先声明,我不玩SQLSERVER。我用Delphi(还是C#?有点忘记了)写的是InterBase的BLOB字段,代码我晚上回家再找给你看吧。
      

  5.   

    好家在,居然还真的是用Delphi写的:
    procedure TMainForm.LoadImgBtnClick(Sender: TObject);
    var Img, Output: String;
    var MS: TMemoryStream;
    var SS: TStringStream;
    begin
      if(not OD.Execute) then
        Exit;  Img:=OD.FileName;
      MS:=TMemoryStream.Create;
      SS:=TStringStream.Create('');  MS.LoadFromFile(Img);
      MS.SaveToStream(SS);  Output:=EncodeString(SS.DataString);
      with ReviewCDS do
      begin
        Edit;
        FieldByName('IMAGES').AsString:=Output;
        Post;
      end;
      MS.Destroy;
      SS.Destroy;
    end;