文件上传中文件类型控制及清空办法

 <input type="file">在JS中是FileUpLoad对象,具体应参考JavaScript方法。

1. 如何调整点击<input type=file>浏览按钮后文件选择对话框中可选择文件类型?

        在WEB页面中,基于HTML无法对上传框进行文件类型的限制。虽然存在accept这个属性,但感觉没有什么用。它设置不了。你只能在用户提交之前,根据你允许上传的文件后缀名和用户所选择的文件进行对比,不允许用户继续上传,但不能提前限制用户不能选择非你允许的上传类型。你可以在客户端用js在上传之前进行判定,或者上传到后台判定。事实上,两面都需要进行检验,以保证数据库中只存在clean的数据。

       其他方案:似乎存在基于ActiveX的方法可以实现上述功能,但用户使用时需要增加安全级别。也有人提出使用“command   dialog   control”进行实现的方案。

2. 如何清空用户已经选择的文件?

      由于安全问题,上传控件<input type="file">的值一般不能通过JavaScript来修改。要修改其值,有两种方法,其一是使用activeX,其二是使用 JavaScript在客户端判断。

     基于JavaScript也有两种方案,一种方法直接删除chkxsd2,另一种方法是新构造一个相同的input对象,如chkxsd。相应JS代码如下:

function  chkxsd(file) {
   s
=file.value;
   s
=s.substr(s.lastIndexOf("."));
   ext
='*.xsd';
   
if(ext.indexOf("*"+s)==-1)   
   
{
    alert(
"您选取的文件格式错误,请选择正确的文件("+ext+")!"); /*不需要降低IE安全级别,重新组装一个吧*/
    document.getElementById(
"xsd").outerHTML="<input name="schemaFile" id ="xsd" type="file" class="inputtext" onpropertychange="chkxsd(schemaFile)">";    
   }

}


function  chkxsd2(file) {
   s
=file.value;
   s
=s.substr(s.lastIndexOf("."));
   ext
='*.xsd';
   
if(ext.indexOf("*"+s)==-1)   
   
{
    alert(
"您选取的文件格式错误,请选择正确的文件("+ext+")!"); 
    
var vv = document.getElementById("xsd");
    vv.select();
    document.execCommand(
'delete'); /*该方法仅适用于IE*/  
   }

}
  

文件上传的HTML代码如下:

< form  name ="form1"  method ="post"  action ="./addtemplet.action"  enctype ="multipart/form-data" >
< a > XML Schema文件 </ a >< input  name ="schemaFile"  id  ="xsd"  type ="file"  class ="inputtext"  accept ="*.xsd"  value =""  onpropertychange ="chkxsd(schemaFile)" > *
 
</ form >
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值