2013-02-25 115 views
8

是否possilbe使用這樣的事情在asp.net應用程序中創建臨時文件和圖像:臨時文件Asp.net

如果沒有,我該怎麼辦呢? (ImagePB是以前處理位圖)

if (System.IO.File.Exists(System.IO.Path.GetTempPath() + @"img" + imgID.ToString() + "PB" + extencao) == true) 
{ 
    try 
    { 
     System.IO.File.Delete(System.IO.Path.GetTempPath() + @"img" + imgID.ToString() + "PB" + extencao); 
     imagePB.Save(System.IO.Path.GetTempPath() + @"img" + imgID.ToString() + "PB" + extencao, imgFormat); 
    } 
    catch (Exception) 
    { } 
} 
+0

考慮到這是一個.net網站,應用程序正在執行的用戶將需要對temp目錄的讀/寫訪問權限。如果您需要幫助設置,請訪問serverfault.com – NotMe 2013-02-25 02:06:12

回答

8

是的,GetTempPath()應該返回一個臨時文件的路徑,你的代碼已經發布應該工作。 http://msdn.microsoft.com/en-us/library/system.io.path.gettemppath.aspx有關於GetTempPath()獲取路徑的更多信息。

雖然它不驗證Temp Path目錄是否存在,或者可以由應用程序寫入。我還沒遇到GetTempPath()確實返回無法訪問的路徑的情況。你可能想在你的應用中解決這個問題來處理這種情況。

也要留意,這很可能是C:\Windows\Temp。它可能具有有限的磁盤空間,或者在需要磁盤空間時由其他人隨時刪除。您可能需要在應用程序中創建一個臨時路徑,並在不再需要時將其刪除。

+0

那麼安全問題呢? – user2013107 2013-02-26 00:32:58

+0

什麼類型的安全問題?你擔心有人未經授權看到這些文件嗎?您無法寫入文件夾「GetTempPath()'的可能性返回? – 2013-02-26 01:55:44

+1

默認情況下,ASP.net應用程序無法寫入該文件夾。 – Christian 2015-02-05 17:11:54