有没有办法为ASP.NET上传控件指定文件扩展名?例如。我想仅使用jpg和png扩展名上传图片。
我可以轻松地为Windows应用程序实现这一点,但与ASP.Net挣扎
谢谢
答案 0 :(得分:4)
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";
}
答案 1 :(得分:1)
您可以使用Javascript检查文件名是否以特定扩展名结尾,但这并不妨碍某人将任何类型的文件重命名为.jpg或.png ...因此您需要确认实际的类型服务器上的文件...
在大多数情况下,客户端png和jpg检查有助于防止浪费上传...
答案 2 :(得分:1)
使用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
答案 3 :(得分:0)
如果您使用Flash,那么您可以定义文件类型(显然,如果有人更改文件结尾,这无济于事)。
我们正在使用NeatUpload,并且多年来一直运作良好:
http://neatupload.codeplex.com/
文件类型有一个设置。