我知道在互聯網歷史的某個地方,這個地方肯定有問題,但我似乎無法確定正確的術語來獲取回答我的需要。這個問題很近:What is the best way to store user uploaded files in a website?但我需要更多的細節。用ASP.NET網站和Visual Studio管理用戶上傳的文件
基本上,你應該如何有效地管理用戶上傳的文件,例如個人資料照片?我想知道的是關於WHERE製作目錄結構的一些「最佳實踐」。
上述問題的第二個答案提供了一些選項,例如將它們存儲在之外的網頁根目錄,這正是我最初想到的。但後來我開始思考......
1)我們如何保存數據庫中的路徑?絕對?相對?每個用戶都有一個「ProfilePicPath」列。如果我們想要將整個項目從一臺服務器完全拔除到另一臺服務器上,並且出於任何原因,我們無法將這些文件放在新服務器上的相同位置?每一個環節都會被打破。
2)應如何處理安全問題?假設我們已將我們的Web應用程序部署爲喜歡C:\ websites \ site1,但我們將用戶個人資料圖片存儲在類似C:\ usercontent \ profilepictures \中?在我們加載配置文件圖片的頁面上,我們如何安全地在後面的代碼中以編程方式訪問該代碼?我們不想把它們放在像C:\ websites \ site1 \ usercontent \ profilepictures \中,對嗎?我不喜歡將絕對路徑放入數據庫,我也不想在後面的代碼中的任何位置硬編碼路徑。
我們最初嘗試使用Web項目中的文件,但隨後它變成了一種風險,因爲這些用戶文件是我們項目的一部分。更新/修改網站時,一次錯誤的複製/粘貼,我們可能會覆蓋用戶上次從存儲庫中檢出項目後上傳的文件等。這是一個巨大的麻煩,整個場景只是向我尖叫,「你這個白癡,你這樣做都是錯誤的......「但我似乎無法找到一個合適的指導來做這件事」是正確的「。
要清楚的是,我們的需求是最小的 - 這只是一個小型項目供內部使用,不超過30個用戶,並且全部需要包含在一個IIS 7服務器上。
你是我的英雄。謝謝! – CptSupermrkt 2012-02-21 00:05:50