有一個 Indy HTTP Server 問題 |
|
Skyer
高階會員 發表:43 回覆:111 積分:120 註冊:2002-04-04 發送簡訊給我 |
請教各位一下囉:
Indy HTTP Server 有辦法接收 Client 上傳 Binary File 嗎? 我找了一下,沒找到相關說明 ~.~ trace 了一下 source (IdHTTPServer.pas)
發現在 DoExecute 這個 function 是把 put 進來的東西直接塞到
TStringStream 裡.. 但是如果是上傳 binary file 的話,不就誤判了 @@ 於是我就想改一下,自己繼承 TidHTTPServer 來改寫
(override) DoExecute function. copy DoExecute 所有內容,
只單純的把原本用 TStringStream 存的東東,改成用 TMemoryStream而以。
結果就發現問題了 [Error] ecHttpServer.pas(83): Undeclared identifier: 'FRemoteIP' 這變數是 TidHTTPRequestInfo 裡的, 而他是屬於 Protect 區裡
我猜想,這是問題發生的地方. 但我就不知道怎麼解決了 @@ 請問有辦法讓 Indy HTTP Server 能接收 Client 上傳的 Binary file 嗎?
或是可以建議我如果修改呢?
------
-- Regards, Skyer |
Skyer
高階會員 發表:43 回覆:111 積分:120 註冊:2002-04-04 發送簡訊給我 |
自問自答一下 ^^"
後來我發現 HTTPServer 有一個 UnparsedParams property
是存放 post 上傳後,還未經過 parse 的資料,於是我直接把這 String
存檔。
測試結果:傳一個 binary file, Server 接到存檔後,正常 OK! 但是我又有一個問題了,
如果今天是上傳一個大檔案,例如 1G 的檔案...
Indy HTTP Server 吃的下來嗎? 即是 String 可以放下這麼大的資料嗎?
------
-- Regards, Skyer |
Jasonwong
版主 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
引言: 自問自答一下 ^^" 後來我發現 HTTPServer 有一個 UnparsedParams property 是存放 post 上傳後,還未經過 parse 的資料,於是我直接把這 String 存檔。 測試結果:傳一個 binary file, Server 接到存檔後,正常 OK! 但是我又有一個問題了, 如果今天是上傳一個大檔案,例如 1G 的檔案... Indy HTTP Server 吃的下來嗎? 即是 String 可以放下這麼大的資料嗎?就理論來講...HTTP SERVER應該是可以吃下來的...但如果是實際上的話...可能 要測試過後才會知道了... 就STRING來講...理論上他的容量可以到達4G...
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心 |
Skyer
高階會員 發表:43 回覆:111 積分:120 註冊:2002-04-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |