【发布时间】:2010-09-23 10:33:45
【问题描述】:
有没有办法为 ASP.NET 上传控件指定文件扩展名?例如。我只想上传带有 jpg 和 png 扩展名的图片。
我可以很容易地为 Windows 应用程序实现这一点,但在 ASP.Net 中遇到了困难
谢谢
【问题讨论】:
标签: c# .net asp.net file-upload
有没有办法为 ASP.NET 上传控件指定文件扩展名?例如。我只想上传带有 jpg 和 png 扩展名的图片。
我可以很容易地为 Windows 应用程序实现这一点,但在 ASP.Net 中遇到了困难
谢谢
【问题讨论】:
标签: c# .net asp.net file-upload
string[] validFileTypes = { "bmp", "jpg", "png" };
string ext = Path.GetExtension(fileUpload1.FileName);
bool isValidType = false;
for (int i = 0; i < validFileTypes.Length; i++)
{
if (ext == "." + validFileTypes[i])
{
isValidType = true;
break;
}
}
if (!isValidType)
{
lblMessage.Text = "Invalid File Type";
}
else
{
lblMessage.Text = "File Uploaded Successfullty";
}
【讨论】:
您可以使用 Javascript 来检查文件名是否以特定扩展名结尾,但这并不妨碍有人将任何类型的文件重命名为 .jpg 或 .png...所以您需要确认文件的实际类型服务器上的文件...
在大多数情况下,客户端的 png 和 jpg 检查将有助于防止上传浪费...
【讨论】:
使用 LINQ / Lambda 进行简化:
string ext = Path.GetExtension(fileUpload1.FileName);
string[] validFileTypes = { "bmp", "jpg", "jpeg", "png" };
bool isValidType = validFileTypes.Any(t => ext == "." + t);
if(isValidType)
'do something
【讨论】:
如果您使用 Flash,那么您可以定义文件类型(如果有人更改文件结尾,这显然无济于事)。
我们正在使用 NeatUpload,并且多年来一直运行良好:
http://neatupload.codeplex.com/
文件类型有设置。
【讨论】: