2009-07-14 102 views
3

我正在嘗試通過Silverlight應用程序將文件ftp到服務器。在服務器文件系統上上載文件的位置存在於Web服務器的沙箱區域之外。在這種情況下,Web服務器根存在於「C:\ test \ www \」,上傳文件的位置將存在於「C:\ User \ Uploads」中。在這個場景中,我不確定Http POST是否可以工作(不使用Web服務器根目錄)。我只需要將用戶選擇的文件上傳到沙箱外可能存在的其他位置。隨着silverlight我想套接字是我的最後一個選項基於有限的端口範圍silverlight是4502-4532。我可以使用WebClient和Http POST來做到這一點嗎?我可以通過silverlight或javascript進行ftp連接嗎?Silverlight上傳

+0

您還沒有指定您的服務器技術。 – AnthonyWJones 2009-07-14 20:59:15

+0

服務器技術爲此使用apache 2.2 – Curtis 2009-07-14 21:15:43

+0

你能否考慮澄清你的原始問題?例如,Silverlight不支持FTP上傳本身,但上傳文件的概念是通過HTTP數據流。我也不知道這是否全部在同一臺機器上。 – 2009-08-05 16:33:13

回答

2

這是一個有趣的場景,因爲它聽起來像是你在同一臺機器上(客戶機和服務器)都這樣做。我對這個模糊的原始問題做出了迴應,並且會喜歡更多的數據來幫助完全回答這個問題。

Silverlight不支持FTP上傳,但上傳文件的概念是通過HTTP數據流。

如果您想要執行從客戶機上傳到服務器的HTTP上傳:您可以使用Silverlight 2和3中的OpenFileDialog control來讀取該數據,然後使用WebClient上傳它。

如果您想從您的Web服務器可以發送的內容中下載到客戶端計算機,那麼您需要使用Silverlight 3或更新版本,其中包含SaveFileDialog control

所有Silverlight文件對話框都需要用戶啓動的操作才能使它們工作,並且用戶需要爲安全目的選擇文件名。

希望這會有所幫助!

0

假設你的服務器是基於ASP.NET的,我將使用一個簡單的WebClient POST到.ashx處理程序中。讓處理程序將帖子正文寫入「C:\ User \ Uploads」中的文件。

0

只要ftp服務器與silverlight應用程序位於同一主機上,您就可以使用套接字並編寫您自己的ftp客戶端,它不是很難,並且有很多示例。

0

同時,將其命名爲Silverlight 5,Sockets得到了更新:ClientAccessPolicy.xml端口範圍得到了提升,並且瀏覽器中的提升信任模式可用。

因此我創建了sharpLightFtp以啓用基本的Ftp。