有没有办法为 ASP.NET 上传控件指定文件扩展名?例如。我只想上传带有 jpg 和 png 扩展名的图像。
我可以轻松地在 Windows 应用程序中实现此功能,但在 ASP.Net 上遇到困难
谢谢你
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/
有文件类型的设置。