我用idhttp上传文件到网站(当然网站是有写权限的),我用循环方法上传目录下的多个文件,总是报告"http/1.1 201 created",我查了资料,该错误的意思是“服务器已经创建了文档,Location头给出了它的URL。”。问题还不仅仅是这些,如果目录下有多个文件(大于1个),当第一次点击“上传”按钮的时候,就报告"http/1.1 201 created"错误,在我的错误处理中认为没有上传成功,但是网站上的的确确已经有这个文件了,而且完全正确,第二次点击“上传”按钮的时候,第一个文件的上传却不报告错误,第二个文件报告该错误,但是同样第二个文件也已经传到了网站,依次类推。但是如果本地目录下只有一个文件的话,却不报告任何错误,一次就成功了。代码及解释如下
var t:Tfilestream;
st:tstringlist;//本地目录下待上传的文件列表
i:integer;//控制循环次数
begin
for i:=0 to st.count-1 do
begin
t:=Tfilestream.create(st[i],fmopenread);
try
idhttp1.put(url+extractfilename(st[i]),t);//url是文件上传到网站的路径
t.free;
showmessage('成功');
exccept
showmessage('失败');
t.free;
end;
end;//循环结束end;//过程结束
var t:Tfilestream;
st:tstringlist;//本地目录下待上传的文件列表
i:integer;//控制循环次数
begin
for i:=0 to st.count-1 do
begin
t:=Tfilestream.create(st[i],fmopenread);
try
idhttp1.put(url+extractfilename(st[i]),t);//url是文件上传到网站的路径
t.free;
showmessage('成功');
exccept
showmessage('失败');
t.free;
end;
end;//循环结束end;//过程结束
解决方案 »
- Delphi中嵌套调用dll的问题
- 如何设置bitmap alpha 值 使其产生不同度的透明效果,用汇编的高手就别回答了,看汇编不好理解
- 关于DBGrid的问题
- 哪位高手帮我翻译一下下面的函数
- 需求一份软件(asp)项目合同样本
- 如何让edit框里显示的时间是走动的?
- 学生问题,关于调用用友的数据表
- Windows 7 下做成系统服务的抓图程序不能抓到桌面图像,求助
- OutLook风格的实现?
- <<<<<<一个笑话100分:讨论邮件问题。
- delphi 学习群:31469235 大家踊跃参加(散分)
- 怎么固定工具面板位置,比如object treeview,object inspector的位置我拖到一个位置,下次打开delphi时候还是这个位置
t.free 应该写到try fianlly end 保护中var t:Tfilestream;
st:tstringlist;//本地目录下待上传的文件列表
i:integer;//控制循环次数
begin
for i:=0 to st.count-1 do
begin
t:=Tfilestream.create(st[i],fmopenread);
try
try
idhttp1.put(url+extractfilename(st[i]),t);//url是文件上传到网站的路径
showmessage('成功');
exccept
showmessage('失败');
end;
finally
t.free;
end;
end;//循环结束end;//过程结束