用idHttp1.DoRequest()删除服务器上的文件,报错!

arlyn 2005-03-24 12:23:19
procedure TfrmVesselDocument.DeleteFile(Docid: Integer);
var
tmpStream: TStringStream;
// 以上曾用过 tmpStream: TStream; 编译的时候说tmpStream.read()和Write()是静态的方法
UrlName: string;
begin
UrlName := dmMain.conVesselURL + intToStr(Docid) + '.doc';
//以上取得服务器上的地址文件,用Ctrl+F7看过,肯定是正确的。
tmpStream := TStringStream.Create('');
try
idHttp1.DoRequest(hmDelete, UrlName , nil, tmpStream);
finally
tmpStream.Free;
end;
end;

// 调用以上过程后就报“Connection Closed Gracefully”
// Gracefully := 优美的意思;

//问题:我只能把数据库中的记录删除,但是服务器上的WORD文件还在。我想删除它(DeleteFile)。
//如果有其他方法也可以。
//WORD文件是放在服务器的硬盘上的不是在数据库中。
//有什么描述不详细请提出来,9:00——18:00在线。
...全文
286 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
halfdream 2005-03-24
  • 打赏
  • 举报
回复
1,你抓异常的时候,把异常信息抓住并输出,不要丢掉。
2,有点怀疑是权限问题。。
halfdream 2005-03-24
  • 打赏
  • 举报
回复
你的异常没有抓住处理,所以服务端SOCKET会主动断掉。

服务器端的程序既然是你在做,你可以在程序里面加入日志记录,
可以一步步检查:
1,检查是否接收到DELETE这个方法。
2,相应的参数接收是否正确。
3,执行出错时候输出的错误信息。
arlyn 2005-03-24
  • 打赏
  • 举报
回复
我写客户端程序,同时也改服务器端的(应用服务器)。
因为更新的时候,有可能需要删除先上传的文件。在传一个新的文件上去。
TIdHTTPMethod = (hmHead, hmGet, hmPost, hmOptions, hmTrace, hmPut, hmDelete, hmConnect);‘
他有这些方法的。
其实我只是需要完成这个功能就可以了。(其他的办法)

//问题:我想删除服务器上的WORD文件。
halfdream 2005-03-24
  • 打赏
  • 举报
回复
晕。。现在才发明白原来arlyn 是在写客户端程序。


你使用这种HTTP发DELETE方法,是需要服务器支持的,
一般大多数HTTP服务器只支持GET和POST方法的。

arlyn 2005-03-24
  • 打赏
  • 举报
回复
我调试是用管理员
vinsonshen 2005-03-24
  • 打赏
  • 举报
回复
up

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧