大家都知道,在FlashGet或NetAns里面。
添加一个任务。
加入URL。
如果是:http://www.xxx.com/abc.zip
这个我可以用DELPHI实现的。
现在问题是如果输入的URL是:http://www.xxx.com/down.asp?id=1(这里对应一个软件,在IE中直接输入就可以下载的,直接叫你保存).
但是我就不能实现。不过FlashGet,NetAns就可以实现.你输入http://www.xxx.com/down.asp?id=1
他就直接在帮你下载了.
我就想知道他是怎么下载的。
怎么把那个ASP文件对应的软件下载下来的!谢谢!
答对马上给分!
添加一个任务。
加入URL。
如果是:http://www.xxx.com/abc.zip
这个我可以用DELPHI实现的。
现在问题是如果输入的URL是:http://www.xxx.com/down.asp?id=1(这里对应一个软件,在IE中直接输入就可以下载的,直接叫你保存).
但是我就不能实现。不过FlashGet,NetAns就可以实现.你输入http://www.xxx.com/down.asp?id=1
他就直接在帮你下载了.
我就想知道他是怎么下载的。
怎么把那个ASP文件对应的软件下载下来的!谢谢!
答对马上给分!
解决方案 »
- TADOQuery处理时出错会导致数据库进程增加?
- Delphi开发1群已满,欢迎进入此群学习93282714
- 有没有哪位朋友可以找到d7高效数据库程序设计200分求之~!
- 关于COM+的问题?
- 往ACCESS数据库中插入记录的时候有时候会出现“数据库被Admin用户锁定不能更新的错误”,为什么?
- SQL Server 中 使用convert函数将日期型转换为字符型时是: Feb 3 2002 12:00AM ?
- 如何使用webbrowser来捕获Document中某按钮的onClick
- Delphi兄弟些,BCB 2007也快出来了,庆祝一下。
- 请问如何使用speechsdk51的内存流呀? ????????????????????
- 在DELPHI中怎样用ISAPI(CGI)实现文件上传功能?
- 还有什么大的技术论坛?我实在受不了CSDN了。
- ************难道没有人知道这个问题吗?用 delphi 如何导出 foxpro数据库表中的数据???
谢谢!很急的搞了两天了。
发了500多分出去了。
都没有人回答正确!
http://www.xxx.com/down.asp?id=1
提交以后,服务器返回一个文件的url,而后者就是你需要的。
如何实现?我也不知道。
const BufferSize = 1024;
var
hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
f: File;
sAppName: string;
begin
Result:=False;
sAppName := ExtractFileName(Application.ExeName);
hSession := InternetOpen(PChar(sAppName),
INTERNET_OPEN_TYPE_PRECONFIG,
nil, nil, 0);
try
hURL := InternetOpenURL(hSession,
PChar(fileURL),
nil,0,0,0);
try
AssignFile(f, FileName);
Rewrite(f,1);
repeat
InternetReadFile(hURL, @Buffer,
SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen)
until BufferLen = 0;
CloseFile(f);
Result:=True;
finally
InternetCloseHandle(hURL)
end
finally
InternetCloseHandle(hSession)
end
end;procedure TForm1.Button3Click(Sender: TObject);
var FileOnNet, LocalFileName: string;
begin
FileOnNet:=
'http://delphi.about.com/library/forminbpl.zip';
LocalFileName:='File Downloaded From the Net.zip';if GetInetFile(FileOnNet,LocalFileName)=True then
ShowMessage('Download successful')
else
ShowMessage('Error in file download')end;
为了你这个200分,我花了一天的时间测试通过的.请接收给分吧.哈哈.
winInet;
function GetInetFile (const fileURL, FileName: String): boolean;
const BufferSize = 1024;
var
hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
f: File;
sAppName: string;
begin
Result:=False;
sAppName := ExtractFileName(Application.ExeName);
hSession := InternetOpen(PChar(sAppName),
INTERNET_OPEN_TYPE_PRECONFIG,
nil, nil, 0);
try
hURL := InternetOpenURL(hSession,
PChar(fileURL),
nil,0,0,0);
try
AssignFile(f, FileName);
Rewrite(f,1);
repeat
InternetReadFile(hURL, @Buffer,
SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen)
until BufferLen = 0;
CloseFile(f);
Result:=True;
finally
InternetCloseHandle(hURL)
end
finally
InternetCloseHandle(hSession)
end
end;procedure TForm1.Button3Click(Sender: TObject);
var FileOnNet, LocalFileName: string;
begin
FileOnNet:='http://www.xxx.com/downing.asp?id=39';
LocalFileName:='File Downloaded From the Net.zip';
if GetInetFile(FileOnNet,LocalFileName)=True then
ShowMessage('Download successful')
else
ShowMessage('Error in file download')
end;
呵呵.再次调整一下.也把引用贴出来。
不过遇到了点问题。
就是取不到下载的文件名啊。
只能自己为他取名。
如果下载的是RAR文件。
但是我又不知道。
我总不可能把定义的文件名写成。
ABB.ZIP文件吧。
枫叶兄。
再帮我试试!
去去其他一些专门提供下载(大多是电影网站)的论坛,那里经常介绍一些下载技巧,其中就有将http://www.xxx.com/downing.asp?id=39解读成为http://www.xxx.com/zz.exe的方法,你读了之后会有启发,最好写出自己的算法~~~~~~~
忘了,在2002年的那本里: