如何删除asp.net上传的图像

时间:2016-05-23 20:18:50

标签: 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);

你可以帮我说一下如何在另一页中删除图片吗? 我将图像地址保存在数据库中,如userfiles / a.jpg

我无法使用以下代码删除图片:

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

2 个答案:

答案 0 :(得分:2)

您的代码显示您在Session变量中保存文件名。要获取存储在会话变量中的文件名,请使用以下代码 -

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

如果您使用数据库,那么请从DB检索文件路径,然后像上面一样使用[将Session变量替换为文件路径变量。]。

答案 1 :(得分: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

如果您需要任何进一步的帮助,请与我们联系。