java web - 限制文件的上传类型为图片类型(.gif,.png,.jpg,.jpeg)

本文介绍了两种文件上传前的格式验证方法,一种使用Ajax实现即时反馈,另一种则是在表单提交前进行验证。这两种方法都能有效避免不符合格式要求的文件被上传。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.使用ajax

function insertTitle(tValue){
if(tValue!=''){
	var len = tValue.length;
	var str = tValue.substr(tValue.lastIndexOf("."),len);
	if(str=='.jpg'||str=='.JPG'||str=='.gif'||str=='.GIF'||str=='.png'||str=='.PNG'||str=='.bmp'||str=='.BMP'){
	}else{
		parent.ymPrompt.alert({title:'信息提示',message:'请选择格式为 .jpg .JPG .gif .GIF .png .PNG .bmp .BMP的附件上传!',width:350,height:200});
		return false;
	}
	var file = document.getElementById("files");
	file.select();
	document.getElementById("picDiv").focus();
	var realPath = document.selection.createRange().text;
		document.getElementById("tupianpath").value = realPath;
	}
}
相应的jsp是:

<input type="file" name="files" id="file1" style="cursor: pointer;position:absolute;filter:alpha(opacity=0);width:0;opacity: 0.0;/**" size="1"   onchange="if(this.value)insertPhoto(this.value,'1');" hidefocus/>


2.不使用ajax

function fileChange(target){  
//检测上传文件的类型 
    var ext,idx;   
    if (target == ''){  
    	ymPrompt.alert({title:'信息提示',message:'请选择需要上传的文件!',width:250,height:160});
        return; 
    } else {   
        idx = target.lastIndexOf(".");   
        if (idx != -1){   
            ext = target.substr(idx+1).toUpperCase();   
            ext = ext.toLowerCase( ); 
            if (ext!='jpg'&&ext!='png'&&ext!='jpeg'&& ext!='gif'){
                ymPrompt.alert({title:'信息提示',message:'只能上传jpg,png,jpeg,gif类型的文件!',width:250,height:160});
          		document.getElementById("yingye").innerHTML="<input   name='file' id='yingyezhizhao'  class='text_172' type=file onchange=\"fileChange(this.value);\">";   
                return;  
            }   
        } else {  
            return;
        }   
    }
}     
</script>
相应的jsp为:
<input   name='file' id='yingyezhizhao'   type=file class="text_172" onchange="fileChange(this.value);" accept=".gif,.jpg,.jpeg,.png">


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值