2016-05-23 35 views
-2

上傳圖像我上傳的文件,但我不知道如何刪除它們:如何刪除asp.net

  string path = Server.MapPath(".") + "\\userfiles\\"; 
      //2-get and check file etention 
      string[] validExt = { ".jpg", ".gif", ".png" }; 
      string ext = System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName); 
      if (Array.IndexOf(validExt, ext.ToLower()) < 0) 
      { 
       return; 
      } 
      //3-get and check file size 
      long size = FileUpload1.PostedFile.ContentLength; 
      size /= 1024; 
      if (size > 2024) 
      { 

       return; 
      } 
      if (size == 0) 
      { 
       return; 
      } 
      //4-get file name 
      string filename = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName); 


      //5-check file exsist and if (true) generate new name 
      while (System.IO.File.Exists(path + "\\" + filename)) 
      { 
       filename = "1" + filename; 
      } 
      //6-savefile to server 
      FileUpload1.PostedFile.SaveAs(path + filename); 
      //we can save file name in to the data base 
      Session.Add("pic", "userfiles/" + filename); 

u能幫助我,說如何刪除在另一頁的圖片? 我在數據庫中保存圖片的地址一樣userfiles/A.JPG

我不能使用此代碼刪除圖像:

System.IO.File.Delete("~/" + adver.Pic);

+0

請參閱[寫完美的問題](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)。 – HABO

回答

2

您的代碼表明你在Session變量保存的文件名。爲了獲取存儲在會話變量中的文件名使用下面的代碼 - 如果你使用的數據庫,然後請檢索數據庫文件的路徑,然後上面使用像

System.IO.File.Delete("~/" + Session("pic")) 

[替換文件路徑變量Session變量。]。

+0

我做你說的,但它沒有奏效。我使用代碼「File.Delete(adver.Pic);」我的文件路徑是adver.pic,但它不起作用 –

0

意味着adver.Pic不包含正確的文件名刪除。爲了簡化事情,我添加了另一個例子。我想你可以更改適合您的需要 -

C#代碼

private void UploadFileExample() 
{ 
string s_FileName = null; 
//Upload the file 
fileupload1.PostedFile.SaveAs(Server.MapPath("~/Uploads/userfiles/" + fileupload1.FileName)); 
//Get File Name of the uploaded file 
s_FileName = System.IO.Path.GetFileName(fileupload1.PostedFile.FileName); 
//Now to delete the file use below code 
System.IO.File.Delete("~/Uploads/userfiles/" + s_FileName); 
} 

我不是一個C#編碼器,我只是轉換上面的代碼從下面的VB代碼 -

Private Sub UploadFileExample()  
Dim s_FileName as String  
    fileupload1.PostedFile.SaveAs(Server.MapPath("~/Uploads/userfiles/" + fileupload1.FileName))  
    s_FileName = System.IO.Path.GetFileName(fileupload1.PostedFile.FileName)  
    System.IO.File.Delete("~/Uploads/userfiles/" + s_FileName) 
End Sub 

設我知道你是否需要任何進一步的幫助。