2010-06-25 68 views
0

我使用Request.Files獲得用戶是我的網頁上上傳的文件的路徑。request.files增加了在本地主機上

我注意到,如果我在IIS中使用文件名屬性它給了我一個路徑+文件名,但是如果我在卡西尼運行它只是給我的名,不管我用什麼目錄。

這是爲什麼?而且,有沒有辦法在IIS中使用文件名?

謝謝, 杆。

+0

重複的問題:http://stackoverflow.com/questions/382464/httppostedfile-filename-different-from-即 – Chris 2010-06-25 16:49:28

+0

好吧,問題稍有不同,但問題是一樣的。將完整的客戶端路徑提供給服務器腳本是潛在的安全風險。上傳文件時,較新的瀏覽器只發送文件名,而不是路徑。 – Chris 2010-06-25 16:50:51

回答

1

要獲取文件名只使用:

System.IO.Path.GetFileName(userPostedFile.FileName)); 

,如:

HttpFileCollection uploadedFiles = Request.Files; 

    for (int i = 0; i < uploadedFiles.Count; i++) 
    {  
     HttpPostedFile userPostedFile = uploadedFiles[i]; 

     if (userPostedFile.ContentLength > 0) 
     { 
     string fileName = System.IO.Path.GetFileName(userPostedFile.FileName)); 
     } 


    }