如何在ASP.Net上传控件中指定文件扩展名?

时间:2010-09-23 10:33:45

标签: c# .net asp.net file-upload

有没有办法为ASP.NET上传控件指定文件扩展名?例如。我想仅使用jpg和png扩展名上传图片。

我可以轻松地为Windows应用程序实现这一点,但与ASP.Net挣扎

谢谢

4 个答案:

答案 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/

文件类型有一个设置。