如何在asp.net中使用文件上传将文件限制为图像类型

时间:2010-07-06 11:55:55

标签: asp.net file-upload

我正在使用文件上传,我想将对话框中显示的文件限制为仅图像。那就是对话框中的'文件类型'应该是.jpg,.jpeg,.gif,.bmp,.png

5 个答案:

答案 0 :(得分:2)

You can't.网络浏览器don't allow您可以按文件类型过滤列表或设置文件上传对话框的默认目录。

正如Darin和Chris所建议的那样,一旦用户选择了一个文件,您就可以使用javascript来解析文件名,并在用户看起来不是正确类型的文件时提醒用户。根据您要对文件执行的操作,您应该考虑在服务器端执行某些操作以验证文件是否为有效图像not something bad

或者,您可以考虑使用Silverlight的OpenFileDialog或甚至是Flash控件。请参阅http://www.plupload.comhttp://www.uploadify.com/http://swfupload.org/等...

答案 1 :(得分:0)

您可以使用regular expression validator

答案 2 :(得分:0)

您需要这两种方式:一种在客户端上易于使用,然后在服务器上一次以防止用户禁用客户端验证。这两种方法都是here

答案 3 :(得分:0)

我知道这是非常古老但是在asp中使用Fileuploads。如果我想将内容锁定为某种类型的图像或视频,我只需对内容类型进行包含。

if (FileUpload1.HasFile) {

    if (FileUpload1.PostedFile.ContentType.Contains("image/")) {
//rest of your logic
    }

}

答案 4 :(得分:-1)

此函数用于检查用户想要上传的文件是否为有效文件类型。

private bool IsValidFile(string filePath)
    {
        bool isValid = false;

        string[] fileExtensions = { ".BMP", ".JPG", ".PNG", ".GIF", ".JPEG" };

        for (int i = 0; i < fileExtensions.Length; i++)
        {
            if (filePath.ToUpper().Contains(fileExtensions[i]))
            {
                isValid = true; break;
            }
        }
        return isValid;
    }

此功能用于检查文件类型&amp;文件大小。如果文件无效,则返回错误消息。

private string ValidateImage(HttpPostedFile myFile)
   {
       string msg = null;
       int FileMaxSize = Convert.ToInt32(ConfigurationManager.AppSettings["FileUploadSizeLimit"].ToString());
       //Check Length of File is Valid or Not.
       if (myFile.ContentLength > FileMaxSize)
       {
           msg = msg + "File Size is Too Large.";
       }
       //Check File Type is Valid or Not.
       if (!IsValidFile(myFile.FileName))
       {
           msg = msg + "Invalid File Type.";
       }
       return msg;
   }