2009-09-23 108 views
1

我在ASP.NET中很少有經驗,所以對於也許容易的問題感到抱歉。在沒有用戶交互的情況下在ASP.NET中上傳文件

我需要將文件從WinForms應用程序上載到服務器,在該服務器上文件將被自動處理並保存到數據庫,而服務器上沒有任何其他用戶交互。

我沒有任何物理服務器,所有這些服務器都將在Medium Trust環境中與ASP.NET共享主機上運行。

我需要在Web服務器上運行什麼?它是一個WebService嗎?我根本不知道從哪裏開始以及要尋找什麼。

我明白它如何與用戶的互動來完成:

  1. 用戶進入我們的網頁
  2. 點擊「上傳」按鈕
  3. 選擇一個硬盤驅動器
  4. 點擊文件好的,我將在ASP.NET中捕獲此事件,上傳該文件並將其保存到 數據庫。

當沒有網頁,也沒有用戶交互時,服務器上沒有可用於接收文件並將其保存在服務器上的事件。

也許這是一件容易的事,但我對此沒有經驗。

感謝所有的意見,切赫

回答

1

我可以看到2個選項:

  1. 創建可由您的WinWorms應用程序使用的Web服務器上一個WebService。
  2. 將使用差的HTTP協議的文件(作爲多部分形式)從WinForms發佈到Web服務器上的處理程序(更好的ASP.NET MVC)。

對我來說,XML Web服務會容易得多。

這是關於在Visual Studio中的working with Web Services的一些信息。

如果您仍想使用方法#2,那麼您需要使用WebRequest類。 以下是樣本:Send data using WebRequest

+0

謝謝,Web服務似乎是我需要的東西。 Web服務是否可以在普通Web主機使用的Medium Trust環境中運行? – user20353 2009-09-23 10:52:03

+0

是的。它會。我不明白爲什麼不。 – 2009-09-23 12:11:19

0

我想你的問題帶有執行代碼段的想法,該代碼段將文件附加到數據庫中。

由於您的服務器之間沒有用戶交互,您唯一的選擇是在從Windows應用程序上載文件後調用Web Service

我假設你使用的是SQL Server,所以你必須聲明一個靜態路徑的文件(一個文件夾名稱就夠了)你的web服務器存儲在哪裏,然後用Server.MapPath(path)方法,你可以爲您的文件帶來絕對路徑。 有了你的文件路徑後,你應該使用系統。IO類: FileStreamStreamReader讀取文件,並將其轉換爲的byte []數組,然後將其存儲到數據庫。

希望這有助於

相關問題