2016-09-23 129 views
-1

我正在開發一個MVC4應用程序並託管在IIS Web服務器中。如何在mvc4中創建文件夾

我要上傳並保存在一個名爲UploadedFileF驅動器文件夾一些文件。 我寫了下面一段代碼來創建文件夾,但它不工作

if (!System.IO.Directory.Exists(Server.MapPath("~/F:/UploadedFile"))) 
{ 
    System.IO.Directory.CreateDirectory(Server.MapPath("~/F:/UploadedFile")); 
} 

當我託管於IIS,我會藏在心裏inetpub所有已發佈的文件(文件,如DLL(BIN),CSS,JS等) 。但我打算保留用戶在F盤上傳的pdf文件。

這是很好的做法,以保持外c驅動文件?請有人提一些建議。

+0

沒有rpob在任何地方保存文件。只要創建virual目錄,並將其與網站地圖 – Imad

+0

我發現這和工作字符串folderName = @「F:\ UploadedFile」; 如果 { System.IO.Directory.CreateDirectory(文件夾名)(System.IO.Directory.Exists(文件夾名)!); } –

+0

但是,這行代碼不工作字符串folderName = @「F:\ UploadedFile」; byte [] bytes = System.IO.File.ReadAllBytes(folderName + filename); –

回答

0

沒有什麼錯使您的文件的Web文件夾的外面,只要你照顧設置安全性和ACL的正確的。這些東西不是微不足道的,如果你沒有正確配置它,你可能會遇到安全問題。

在你的情況,我認爲你正在試圖從該文件中的數據時,一個錯誤的道路。

在這一行:

System.IO.File.ReadAllBytes(folderName + filename); 

FOLDERNAME +文件名會返回@"F:\UploadedFile<filename>"。例如:@"F:\UploadedFilefile1.docx"所以你會得到一個錯誤,因爲它是一個無效的路徑。

爲了避免這種錯誤,你應該使用Path.Combine

using System.IO; 

//this will return @"F:\UploadedFile\file1.docx" 
var fullFileName = Path.Combine(folderName, fileName); 
var bytes= System.IO.File.ReadAllBytes(fullFileName); 

//do something with your file. 

希望這有助於!

相關問題