線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2008
推到 Plurk!
推到 Facebook!

請問關於CGI的檔案上傳問題:

尚未結案
remmurds
一般會員


發表:17
回覆:14
積分:16
註冊:2006-10-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-06-10 14:10:58 IP:140.130.xxx.xxx 訂閱
<textarea class="cpp" rows="10" cols="60" name="code">//--------------------------------------------------------------------------- #include "Main.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TWebModule1 *WebModule1; //--------------------------------------------------------------------------- __fastcall TWebModule1::TWebModule1(TComponent* Owner) : TWebModule(Owner) { } //--------------------------------------------------------------------------- void __fastcall TWebModule1::WebModule1WebActionItem1Action( TObject *Sender, TWebRequest *Request, TWebResponse *Response, bool &Handled) { int i; TFileStream *FStream; TStringList *MSG = new TStringList(); Response->ContentType = "text/html"; for(i = 0; i < Request->Files->Count; i ) { if(!ExtractFileName(Request->Files->Items[i]->FileName).IsEmpty()) { MSG->Add(ExtractFileName(Request->Files->Items[i]->FileName) "
"); FStream = new TFileStream(ExtractFileName(Request->Files->Items[i]->FileName), fmCreate); FStream->CopyFrom(Request->Files->Items[i]->Stream, 0); delete FStream; } } Response->Content = MSG->Text; delete MSG; } //--------------------------------------------------------------------------- </textarea>
小弟寫了一個這樣的CGI程式負責處理檔案的上傳動作
結果會出現HTTP 500 - 內部伺服器錯誤
但如果把程式改成以下內容進行測試則可正確執行
並顯示出所上傳的檔案名稱:
<textarea class="cpp" rows="10" cols="60" name="code">//--------------------------------------------------------------------------- #include "Main.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TWebModule1 *WebModule1; //--------------------------------------------------------------------------- __fastcall TWebModule1::TWebModule1(TComponent* Owner) : TWebModule(Owner) { } //--------------------------------------------------------------------------- void __fastcall TWebModule1::WebModule1WebActionItem1Action( TObject *Sender, TWebRequest *Request, TWebResponse *Response, bool &Handled) { int i; TStringList *MSG = new TStringList(); Response->ContentType = "text/html"; for(i = 0; i < Request->Files->Count; i ) { if(!ExtractFileName(Request->Files->Items[i]->FileName).IsEmpty()) { MSG->Add(ExtractFileName(Request->Files->Items[i]->FileName) "
"); } } Response->Content = MSG->Text; delete MSG; } //--------------------------------------------------------------------------- </textarea>
可見小弟所寫的程式在FileStream的部分出了問題
請問我究竟哪裡有誤呢?

PS:提供檔案上傳的HTML網頁在附加檔案中,另外CGI的執行環境為IIS 6.0。
------
隨筆網誌: http://reassert.blogspot.com
編輯記錄
remmurds 重新編輯於 2007-06-10 14:15:12, 註解 無‧
remmurds 重新編輯於 2007-06-10 14:16:28, 註解 無‧
系統時間:2024-04-26 7:39:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!