Здесь у меня есть небольшой метод, который я использовал, чтобы отфильтровать, какие типы файлов могут быть загружены с помощью элемента управления загрузкой файлов с именем fuLogo.
if (fuLogo.HasFile)
{
int counter = 0;
string[] fileBreak = fuLogo.FileName.Split(new char[] { '.' });
logo = Server.MapPath("../Images/Logos/" + fileBreak[0] + counter.ToString()+ "." + fileBreak[1]);
if (fileBreak[1].ToUpper() == "GIF" || fileBreak[1].ToUpper() == "PNG")
{
while (System.IO.File.Exists(logo))
{
counter++;
logo = Server.MapPath("../Images/Logos/" + fileBreak[0] + counter.ToString() + "." + fileBreak[1]);
}
}
else
{
cvValidation.ErrorMessage = "This site does not support any other image format than .Png or .Gif . Please save your image in one of these file formats then try again.";
cvValidation.IsValid = false;
}
fuLogo.SaveAs(logo);
}
В основном я сначала перебираю каталог, чтобы посмотреть, существует ли файл. Если файл существует (например, picture0.gif), он увеличит счетчик (до picture1.gif). Это предотвращает перезапись изображений разными пользователями, если их изображения имеют одинаковые имена.