全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3303
推到 Plurk!
推到 Facebook!

轉址後的檔案,要如何取得原始的檔案名稱?

答題得分者是:fatmoon1
shinhrn
中階會員


發表:54
回覆:165
積分:83
註冊:2002-06-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-02 16:56:45 IP:218.170.xxx.xxx 未訂閱
http://www.msnusers.com/testmytest/msgattachments/3 如以上的檔案,不知道要用能個方式才可以得到原始的檔名(EPSN1203.jpg) 試過用 DownLoadInternetFile 可以在下載存檔,可是我想依原檔名來存檔... 試過用 IdHTTP1.get 無法下載存檔...
shinhrn
中階會員


發表:54
回覆:165
積分:83
註冊:2002-06-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-13 12:37:34 IP:218.170.xxx.xxx 未訂閱
看來這一題又要進回收區了< >< >原本我是想說flashget可以做到因該delphi也可以完成可是不知要如何做ㄝ....有人可以幫幫忙嗎?謝謝啦....
bugmans
高階會員


發表:95
回覆:322
積分:188
註冊:2003-04-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-20 21:18:03 IP:218.166.xxx.xxx 未訂閱
試試看這個範例http://www.vbguide.com.tw/vbqa/vb.old/read.asp?id=15682
shinhrn
中階會員


發表:54
回覆:165
積分:83
註冊:2002-06-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-22 08:53:50 IP:218.170.xxx.xxx 未訂閱
引言: 試試看這個範例http://www.vbguide.com.tw/vbqa/vb.old/read.asp?id=15682
謝謝您的回應..但似乎不是我所要的..我不是要加功能於右鍵上..我的問題在於要下載的檔案被系統轉換過網址...我要得到轉換後的網址或檔名,這樣我才可以拿來存檔,謝謝..
magicbear
一般會員


發表:5
回覆:10
積分:3
註冊:2004-11-20

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-11-23 18:06:59 IP:202.175.xxx.xxx 未訂閱
function GetFileName(location: string): string; var kk: string; begin   kk := location;   while pos('/', kk) > 0 do   begin     kk := copy(kk, pos('/', kk) + 1, length(kk) - pos('/', kk))   end;   result:=kk; end; 例: showmessage(getfilename('Location: http://www.myim.cn/downloads/MyIM2004.exe'));    至於位置, 你要截取網絡傳送的資料, 或者自己寫個HTTP Client, 然後攔截Location的資料    例: flashget的資料: ... Tue Nov 23 18:04:30 2004 GET /php/tdownload2.php?sid=11126&url=/internet/server/remote/cwinvnc337.exe&svr=1&typ=0 HTTP/1.1 Tue Nov 23 18:04:30 2004 Host: download.pchome.net Tue Nov 23 18:04:30 2004 Accept: */* Tue Nov 23 18:04:30 2004 Referer: http://download.pchome.net/php/tdownload2.php?sid=11126&url=/internet/server/remote Tue Nov 23 18:04:30 2004 User-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98) Tue Nov 23 18:04:30 2004 Pragma: no-cache Tue Nov 23 18:04:30 2004 Cache-Control: no-cache Tue Nov 23 18:04:30 2004 Connection: close Tue Nov 23 18:04:30 2004 HTTP/1.1 302 Found Tue Nov 23 18:04:30 2004 Date: Tue, 23 Nov 2004 10:04:30 GMT Tue Nov 23 18:04:30 2004 Server: Apache Tue Nov 23 18:04:30 2004 X-Powered-By: PHP/4.3.8 Tue Nov 23 18:04:30 2004 Location: http://dla.pchome.net/internet/server/remote/cwinvnc337.exe Tue Nov 23 18:04:30 2004 Content-Length: 0 Tue Nov 23 18:04:30 2004 Content-Type: text/html; charset=gb2312 Tue Nov 23 18:04:30 2004 Connection: Close Tue Nov 23 18:04:30 2004 重定向到 http://dla.pchome.net/internet/server/remote/cwinvnc337.exe Tue Nov 23 18:04:30 2004 正在連接 dla.pchome.net:80 Tue Nov 23 18:04:30 2004 正在連接 dla.pchome.net [IP=202.109.72.68:80] Tue Nov 23 18:04:31 2004 已連接. Tue Nov 23 18:04:31 2004 GET /internet/server/remote/cwinvnc337.exe HTTP/1.1 Tue Nov 23 18:04:31 2004 Host: dla.pchome.net Tue Nov 23 18:04:31 2004 Accept: */* Tue Nov 23 18:04:31 2004 Referer: http://dla.pchome.net/internet/server/remote Tue Nov 23 18:04:31 2004 User-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98) Tue Nov 23 18:04:31 2004 Pragma: no-cache Tue Nov 23 18:04:31 2004 Cache-Control: no-cache Tue Nov 23 18:04:31 2004 Connection: close Tue Nov 23 18:04:35 2004 HTTP/1.1 200 OK Tue Nov 23 18:04:35 2004 Date: Tue, 23 Nov 2004 09:45:50 GMT Tue Nov 23 18:04:35 2004 Server: Apache/1.3.23 (Unix) (Red-Hat/Linux) DAV/1.0.3 PHP/4.0.6 mod_perl/1.26 Tue Nov 23 18:04:35 2004 Last-Modified: Mon, 17 Mar 2003 02:24:50 GMT Tue Nov 23 18:04:35 2004 ETag: "7dc014-6436c-3e7531f2" Tue Nov 23 18:04:35 2004 Accept-Ranges: bytes Tue Nov 23 18:04:35 2004 Content-Length: 410476 Tue Nov 23 18:04:35 2004 Content-Type: application/octet-stream Tue Nov 23 18:04:35 2004 Connection: Close ... 取得紅色的句子, 然後作為參數傳入
magicbear
一般會員


發表:5
回覆:10
積分:3
註冊:2004-11-20

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-11-23 18:18:33 IP:202.175.xxx.xxx 未訂閱
Tue Nov 23 18:12:37 2004 Location: http://login.passport.com/login.srf?lc=1033&id=1929&ru=http%3A%2F%2Fwww%2Emsnusers%2Ecom%2Ftestmytest%2Fmsgattachments%2F3&tw=43200&kv=5&ct=1101204757&kpp=1&ver=2.1.0173.1&tpf=181fb60c4b14cb72b441f6aed54c00cc Tue Nov 23 18:12:37 2004 Content-Length: 0 Tue Nov 23 18:12:37 2004 WWW-Authenticate: 安全問題,略 Tue Nov 23 18:12:37 2004 Set-Cookie: 安全問題,略 domain=.msnusers.com; expires=Sat, 04-Oct-2003 00:00:00 GMT; path=/ Tue Nov 23 18:12:37 2004 Connection: Close Tue Nov 23 18:12:37 2004 重定向到 http://login.passport.com/login.srf?lc=1033&id=1929&ru=http%3A%2F%2Fwww%2Emsnusers%2Ecom%2Ftestmytest%2Fmsgattachments%2F3&tw=43200&kv=5&ct=1101204757&kpp=1&ver=2.1.0173.1&tpf=181fb60c4b14cb72b441f6aed54c00cc Tue Nov 23 18:12:37 2004 正在連接 login.passport.com:80 Tue Nov 23 18:12:37 2004 正在連接 login.passport.com [IP=65.54.179.198:80] Tue Nov 23 18:12:38 2004 已連接. Tue Nov 23 18:12:38 2004 GET /login.srf?lc=1033&id=1929&ru=http%3A%2F%2Fwww%2Emsnusers%2Ecom%2Ftestmytest%2Fmsgattachments%2F3&tw=43200&kv=5&ct=1101204757&kpp=1&ver=2.1.0173.1&tpf=181fb60c4b14cb72b441f6aed54c00cc HTTP/1.1 Tue Nov 23 18:12:38 2004 Host: login.passport.com Tue Nov 23 18:12:38 2004 Accept: */* Tue Nov 23 18:12:38 2004 Referer: http://login.passport.com Tue Nov 23 18:12:38 2004 Cookie: MC1=V=2&GUID=BD90848E88B74457910FBBC23E4EF3E7 Tue Nov 23 18:12:38 2004 User-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98) Tue Nov 23 18:12:38 2004 Pragma: no-cache Tue Nov 23 18:12:38 2004 Cache-Control: no-cache Tue Nov 23 18:12:38 2004 Connection: close Tue Nov 23 18:12:38 2004 User Cancel at 0. 正如這個,放在OnReceive事件中: if (lowsercase(copy(收到的字串,1,8))='location') then begin filename:=getfilename(收到的字串); end;
shinhrn
中階會員


發表:54
回覆:165
積分:83
註冊:2002-06-05

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-11-24 08:54:42 IP:218.170.xxx.xxx 未訂閱
引言: 至於位置, 你要截取網絡傳送的資料, 或者自己寫個HTTP Client, 然後攔截
請問我用IdHTTP原件並沒有OnReceive事件ㄝ?不知您說的自己寫個HTTP Client 是要如何做ㄝ?不好意思我不知是否有一個現成原件可達成?謝謝
magicbear
一般會員


發表:5
回覆:10
積分:3
註冊:2004-11-20

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-11-24 19:33:33 IP:202.175.xxx.xxx 未訂閱
用WinSock自己寫個!
shinhrn
中階會員


發表:54
回覆:165
積分:83
註冊:2002-06-05

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-11-29 11:32:24 IP:218.170.xxx.xxx 未訂閱
引言: 用WinSock自己寫個!
不知可以給個
China Join
中階會員


發表:81
回覆:242
積分:89
註冊:2003-03-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-05-04 10:22:16 IP:210.66.xxx.xxx 未訂閱
呵呵,小弟剛好有寫到這部分功能 這裡面有: IdHTTP1->Response->ExtraHeaders->Text; 第二個參數:filename= 後面就是傳回的檔名了 請自行解析字串囉 ^^"
shinhrn
中階會員


發表:54
回覆:165
積分:83
註冊:2002-06-05

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-05-04 11:22:52 IP:218.170.xxx.xxx 未訂閱
引言: 呵呵,小弟剛好有寫到這部分功能 這裡面有: IdHTTP1->Response->ExtraHeaders->Text; 第二個參數:filename= 後面就是傳回的檔名了請自行解析字串囉 ^^"
對不起,delphi裡好像沒有ExtraHeaders 我試過 IdHTTP1.Response.Location IdHTTP1.Response.ResponseText IdHTTP1.Response.Pragma IdHTTP1.Response.WWWAuthenticate.Text IdHTTP1.Response.RawHeaders.Text IdHTTP1.Response.CustomHeaders.Text 也沒發現ㄝ..是否可以請再幫忙看一下,delphi中是叫什麼?謝謝...
fatmoon1
初階會員


發表:3
回覆:29
積分:36
註冊:2004-05-24

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-05-14 07:22:51 IP:61.63.xxx.xxx 未訂閱
我是用 DELPHI 5.0, Indy9元件 測試範例如下 Button1: TButton; IdHTTP1: TIdHTTP; ... procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Lines.Text:=IdHTTP1.Get('http://download.pchome.net/php/tdownload2.php?sid=19286&url=/internet/server/remote/se_setup1370.exe&svr=1&typ=0'); end; ... procedure TForm1.IdHTTP1Redirect(Sender: TObject; var dest: String; var NumRedirect: Integer; var Handled: Boolean; var VMethod: TIdHTTPMethod); begin ShowMessage(dest); //dest 存的資料就是轉向後的連結 Handled:=True; //要給 True 才不會出現 'HTTP/1.1 302 Found.' end; 但是在取得轉向的連結後,還不知如何處理. 請各位大大多多指教. ========================= http://msi-team.com/msitasi
------
才疏學淺
bugmans
高階會員


發表:95
回覆:322
積分:188
註冊:2003-04-12

發送簡訊給我
#13 引用回覆 回覆 發表時間:2007-11-23 19:07:26 IP:125.224.xxx.xxx 未訂閱
原問題http://delphi.ktop.com.tw/board.php?cid=30&fid=67&tid=90663
但這篇magicbear有提到答案所以在這裡回文

至於位置, 你要截取網絡傳送的資料, 或者自己寫個HTTP Client, 然後攔截Location的資料

關鍵就在http Header Location欄位取得轉址後的位置
我也提供一個範例來證明magicbear所言不假
http://delphi.ktop.com.tw/download.php?download=upload/4746b1458af61_Project1.exe
有興趣的網友可以從WinHttpRequest,WinHttpRequest,WinHttpRequestOption_EnableRedirects
這幾個關鍵字開始找起
編輯記錄
bugmans 重新編輯於 2007-11-23 19:10:01, 註解 無‧
系統時間:2024-04-25 21:30:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!