[delphi]关于上传文件,代码如下: 问题是文件上传都成功,可是下载的时候却只能下下来一个空白的文件?

procedureTfrm_htgl.btn8Click(Sender:TObject);var//上传文件pFileStream:Tfilestream;pFile,p... procedure Tfrm_htgl.btn8Click(Sender: TObject);
var //上传文件
pFileStream:Tfilestream;
pFile,pSJ,pWJM,pKZM,pWJNR:string;//pWJNR该设置成什么类型的呀?这个可以吗?
pQuery:TADOQuery;
begin
OpenDialog1.Title:='请选择需要上传的文件';
if not OpenDialog1.Execute then exit;//没有选择文件即退出
//如果选择了文件,接下来开始上传
//获取服务器当前时间
try
pQuery:=TADOQuery.Create(nil);
try
with pQuery do
begin
Connection:=data1.ADOConnection1;
sql.Text:='select getdate()';
open;
pSJ:=Fields.Fields[0].AsString;//获取服务器当前时间
end;
except
on E:exception do
begin
application.MessageBox(PChar('获取服务器时间失败!'+#13+'系统提示信息:'+e.Message),'保存失败',mb_ok+MB_ICONINFORMATION);
Exit;
end;
end;
finally
pQuery.Free;
end;
try
pFile:=OpenDialog1.FileName;
pKZM:=ExtractFileExt(pFile);
pWJM:=Copy(ExtractFileName(pFile),1,(Length(ExtractFileName(pFile))-Length(pKZM)));
pFileStream:=Tfilestream.Create(pFile,Fmopenread);
pWJNR:=Parameters.ParamByName('CJWJ').LoadFromStream(pFileStream,ftBlob);
//这行编译通不过,报错是Object or class type required,怎么整?
//还有一个错 Missing operator or semicolon怎么回事?
try
with data1.ADOhtgl do
begin
edit;
Data1.ADOhtgl.FieldByName('IP').Value:= qIP;//上传人的IP
Data1.ADOhtgl.FieldByName('WJM').Value:= pWJM;//文件名
Data1.ADOhtgl.FieldByName('KZM').Value:= pKZM;//文件扩展名
Data1.ADOhtgl.FieldByName('CJWJ').Value:= pWJNR;//文件
post
end;
except
MessageBox(Self.Handle, '上传文件失败!','操作失败', MB_OK + MB_ICONERROR);
exit;
end;
finally
pFileStream.Free;
end;
showmessage('上传成功!');
end;
展开
 我来答
lovesky0414
2013-06-19 · TA获得超过3353个赞
知道大有可为答主
回答量:1610
采纳率:66%
帮助的人:1612万
展开全部
向数据库添加文件要使用Tblob
Tblob(FieldByname('字段名')).loadfronfile(文件路径);

从数据库导出文件的时候是 Tblob(FieldByname('字段名')).savetofile(文件路径)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式