2014-11-20 77 views
0

我最近爲我的Web應用程序(用C#編寫的ASP.NET)添加了一個方法,用於轉到包含一堆電子表格的文件夾並將它們導入到SQL Server表中。我使用管理表設置文件夾和文件名,以便知道如何處理每個文件以及應該去哪個表等。它甚至會跟蹤文件日期和時間,以便忽略自上次以來不是新增的任何內容它會導入它們。非常酷,但它只適用於我的開發機器,很可能是因爲路徑很容易識別。從Web應用程序在本地打開文件

我希望其他人能夠做到這一點,但我似乎無法讓Web應用程序訪問用戶本地機器上的預先安排的路徑。現在我假設這是正常的(我們不應該能夠將Web應用程序伸入某人的機器並抓取文件!),但有什麼方法可以使用已知路徑或通過讓用戶選擇本地夾?如果我把文件放在網站的一個文件夾中,可能會更容易嗎?

達納

+0

您的Web應用程序只需要必要的權限才能執行此操作。如果你在公司網絡中,不應該太難。但如果我是你,我不會通過文件夾監控來做到這一點。我會這樣做,用戶必須明確上傳文件。當然,這一切都取決於很多因素,但我儘量避免通過SMB協議訪問文件。 HTTP的速度要快得多。 – mason 2014-11-20 19:45:42

回答

0

如果我正確理解你的問題,這種方法是,你希望用戶輸入一個本地文件路徑和你處理它。

這不會通過網站工作。從安全角度來看,這是非常明智的,正如你指出的那樣。所以除非你在本地機器上安裝一些客戶端應用程序,否則不可能。

您將需要一個文件上傳對話框並讓用戶明確地爲您找到文件,單擊上傳並在服務器上處理它們。

這裏的一些其他策略: https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications 但它仍然需要用戶手動選擇它們。

+0

謝謝,我會盡力走下去。應用程序很容易找到網站上的任何文件夾?這是一些標準的文件路徑:http:// xxxx等? – Dana 2014-11-20 19:59:31

+0

@Pleun你的答案假設這是一個公共Web服務器。但答案並沒有考慮到這可能是位於公司網絡中的服務器上的Web應用程序,Web應用程序正在運行的帳戶可能有權訪問客戶端的文件系統。 *沒有*是安裝在客戶端機器上的應用程序。 – mason 2014-11-20 20:10:31

+0

@mason,但然後用戶必須輸入完整的UNC路徑,包括機器名稱 - 該帳戶只存在於後端,並且不會通過瀏覽器訪問該級別...理論上,該Web應用程序可以作爲域管理員運行但瀏覽器仍然無能爲力。 – Pleun 2014-11-21 16:45:45

相關問題