我正在使用文件上传,我想将对话框中显示的文件限制为仅图像。那就是对话框中的'文件类型'应该是.jpg,.jpeg,.gif,.bmp,.png
答案 0 :(得分:2)
You can't.网络浏览器don't allow您可以按文件类型过滤列表或设置文件上传对话框的默认目录。
正如Darin和Chris所建议的那样,一旦用户选择了一个文件,您就可以使用javascript来解析文件名,并在用户看起来不是正确类型的文件时提醒用户。根据您要对文件执行的操作,您应该考虑在服务器端执行某些操作以验证文件是否为有效图像not something bad 。
或者,您可以考虑使用Silverlight的OpenFileDialog或甚至是Flash控件。请参阅http://www.plupload.com,http://www.uploadify.com/,http://swfupload.org/等...
答案 1 :(得分:0)
答案 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;
}