我上传文件,但我不知道如何删除它们:
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);
答案 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
如果您需要任何进一步的帮助,请与我们联系。