2013-05-16 139 views
1

我是一名致力於OpenACS體系結構的新手,需要通過TCL上傳.xml文件。我通過文檔,並試圖解決這裏提到的代碼:http://wiki.tcl.tk/13675使用TCL上傳文件

但是,我無法理解代碼和複製粘貼將無法正常工作。有人能請建議一種更簡單的工作方式來上傳TCL文件嗎?一個工作代碼會有很大的幫助。

我需要通過HTTP表單(使用輸入類型文件參數)上傳文件,並且我要求提供服務器端代碼。

+1

你是什麼意思與上傳? FTP,一種HTTP形式,SCP? –

+2

您是在編寫客戶端代碼還是服務器代碼?你想寫一條消息來做上傳,還是處理來自瀏覽器的上傳?你遇到的問題究竟是什麼? 「無法獲得代碼工作」並不是我們可以解決的確切問題... –

+0

我需要通過HTTP表單(使用輸入類型文件參數)上載文件,並且我要求提供服務器端代碼。對於客戶端代碼,我相信在.adp頁面中編寫純HTML是足夠的。 –

回答

-1

在大多數情況下重新發明網絡協議並不值得,所以我想推薦使用經過驗證的社區庫。根據我個人的經驗,我很高興處理libcurl(請參閱http://curl.haxx.se/libcurl/tcl

+0

嗨Yury,你能給我通過這個庫上傳文件的最簡單的代碼嗎? –

+0

這將是爲客戶端,但從你的更新似乎你是關心服務器端,所以這個答案是不相關的。 –

0

OpenACS已經內置了文件上傳(假設您使用的是OpenACS表單構建器,又名ad_form,template :: form - 它有很多名字!)。你需要使用特定的部件是template::widget::file

一個工作的例子是在總評包(請參閱文件ae.adp,文件add.tcl和文件附加2.tcl): http://cvs.openacs.org/browse/OpenACS/openacs-4/packages/general-comments/www/file-ae.adp?r=1.6 http://cvs.openacs.org/browse/OpenACS/openacs-4/packages/general-comments/www/file-add.tcl?r=1.4 http://cvs.openacs.org/browse/OpenACS/openacs-4/packages/general-comments/www/file-add-2.tcl?r=1.6

具體而言,尋找出2個ad_page_contract參數,然後按照這些變量向下穿過代碼:

upload_file:notnull 
upload_file.tmpfile:tmpfile 
+0

@Rachit,我添加了更多的工作示例鏈接。如果您對如何融合在一起有任何疑問,我很樂意解釋。 – TrojanName