保存office文档,体积增大一倍,帮我看下代码,有没有好的办法?
function BlobContentTostring(const Filename:string):string;
begin
with Tfilestream.Create(filename,fmopenread) do
try
setlength(result,size);
read(pointer(result)^,size);
finally
free;
end;
end;
sfilename:=opendialog1.FileName;
file_path.Text := ExtractFilePath(OpenDialog1.FileName)+sfilename; //上传文件的路径
ADOQuery1.FieldByName('file_text').AsString:=blobcontenttostring(sfilename);
用上面代码保存文档:
各位前辈,我在sql server中设置了一个file_text的字段,类型为ntext,然后用上面的方法保存word或者excel文档。
但是现在发现麻烦出来了,一个文件在电脑里是10K大小,通过上述方法保存到sql server中,再导出来体积就变成20K了。
有什么好的办法吗,不胜感激。
[解决办法]
你把文件流都转成字符了 blobcontenttostring ?,这问题就大了,你为什么不用blob字段保存文件流呢
[解决办法]
with ADOQuery1 do
begin
Append;
FieldByName('imgid').Asstring := 1;
TBlobField(FieldByName('imgsize')).LoadFromFile(FileName);
Post;
end;
这种方式,一般不会出现问题