日期:2014-05-17  浏览次数:20546 次

文件上传限制选择文件的类型
文件上传限制选择文件的类型,在用户点击file控件时弹出选择文件的窗口,文件类型默认选择的是我需要的图片文件格式,而不是所有文件(*.*)。


<script>
function ck(obj){if(obj.value.length>0){
var af="jpg,gif,png,zip,rar,txt,htm";
if(eval("with(obj.value)if(!/"+af.split(",").join("|")+"/ig.test(substring(lastIndexOf('.')+1,length)))1;")){alert("Allowed file types:\n"+af);obj.form.reset()};
}}
</script>
<form><input type=file name=path onpropertychange="ck(this)"/></form>


这段代码虽然可以在前端控制,但不能实现我想要的效果。

------解决方案--------------------
你可以在后台设置 也可在webconfig中设置 在后台设置 其实很简单 
string fileName = Path.GetExtension(FileUpload1.FileName.Trim()); 
这句代码的意思就是获取上传文件的后缀名如“.jpg”  你可以通过判断fileName来进行实现上传功能
------解决方案--------------------
要在服务端控制?

string fileContentType = FileUpload1.PostedFile.ContentType;  
if (fileContentType == "image/bmp" 
------解决方案--------------------
 fileContentType == "image/gif" 
------解决方案--------------------
 fileContentType == "image/pjpeg") 
{
    //进行上传

------解决方案--------------------
LZ用ASP控件吧~可以控制的 不要用Html原生标签
------解决方案--------------------
这个不能改变吧  系统自带的选择框    就像 系统的confirm对话框 我们不能美化它

除非用其他上传控件吧?
------解决方案--------------------
winform 可以,webform 不知道...等答案
------解决方案--------------------
activex控件
ValidationExpression=".*([\.jpg]
------解决方案--------------------
[\.jpeg]
------解决方案--------------------
[\.jpe]
------解决方案--------------------
[\.gif]
------解决方案--------------------
[\.png]
------解决方案--------------------
[\.JPEG]
------解决方案--------------------
[\.JPG]
------解决方案--------------------
[\.GIF]
------解决方案--------------------
[\.bmp]
------解决方案--------------------
[\.BMP])$"  
或JS判断
------解决方案--------------------
可以用正则表达式来验证,也可以通过获取文件名来验证
------解决方案--------------------
在用户点击file控件时弹出选择文件的窗口,文件类型默认选择的是我需要的图片文件格式

这种方法不能实现,w3c虽然有标准,但没有一个浏览器实现了此功能
------解决方案--------------------
简单的方法是加一个验证文件名后缀的正则

------解决方案--------------------
引用:
继续等待着新的答案。 

我要的是弹开选择文件的窗口,用户在选择文件时就不能选择非图片文件。

请各位看清楚再回答。
谢谢。。

网上看到过,弹出的可选文件类型只有.jpg,.gif是吧