2016-05-23 66 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 

设我知道你是否需要任何进一步的帮助。