我正在使用文件上传,希望限制在对话框中显示的文件仅为图像。也就是说,对话框中的“文件类型”应该是.jpg、.jpeg、.gif、.bmp、.png。
我正在使用文件上传,希望限制在对话框中显示的文件仅为图像。也就是说,对话框中的“文件类型”应该是.jpg、.jpeg、.gif、.bmp、.png。
你不能这样做。 Web浏览器不允许你过滤文件类型或设置文件上传对话框的默认目录。
正如Darin和Chris所建议的那样,一旦用户选择了文件,你可以使用javascript解析文件名,并在文件看起来不是正确类型时向用户发出警报。根据你将要对文件进行的操作,你应该考虑在服务器端执行某些操作以验证文件是否为有效图像,而且不是恶意文件。
另外,你可以尝试使用Silverlight的OpenFileDialog,甚至是Flash控件。请参见http://www.plupload.com、http://www.uploadify.com/、http://swfupload.org/等网站。
我知道这很老了,但在ASP中使用文件上传。如果我想锁定内容为某种类型,比如图像或视频,我只需对内容类型进行包含操作。
if (FileUpload1.HasFile) {
if (FileUpload1.PostedFile.ContentType.Contains("image/")) {
//rest of your logic
}
}
这个函数用于检查用户想要上传的文件是否为有效的文件类型。
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;
}
这个函数用于检查文件类型和文件大小。如果文件无效,则会返回错误消息。
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;
}