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

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"   οnchange="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 οnchange=\"fileChange(this.value);\">";   
                return;  
            }   
        } else {  
            return;
        }   
    }
}     
</script>
相应的jsp为:
<input   name='file' id='yingyezhizhao'   type=file class="text_172" οnchange="fileChange(this.value);" accept=".gif,.jpg,.jpeg,.png">


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你的问题是如何解决JavaWeb上传图片时的过滤问题。这个问题其实可以通过在JavaWeb中使用Filter来解决。 具体的实现方法如下: 1. 创建一个过滤器类,实现javax.servlet.Filter接口。 2. 在doFilter方法中,获取上传文件文件名,然后判断文件名是否以.jpg、.jpeg、.png、.gif图片格式结尾。 3. 如果是图片文件,则直接放行,否则就拒绝上传并返回错误信息。 4. 在web.xml文件中配置该过滤器。 下面是一个简单的示例代码,仅供参考: ``` import java.io.IOException; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebFilter(filterName = "UploadFilter", urlPatterns = {"/upload/*"}) public class UploadFilter implements Filter { private String[] allowedExt = {".jpg", ".jpeg", ".png", ".gif"}; public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) resp; String fileName = request.getHeader("file-name"); if (fileName != null) { for (String ext : allowedExt) { if (fileName.endsWith(ext)) { chain.doFilter(request, response); return; } } } response.sendError(HttpServletResponse.SC_BAD_REQUEST, "只允许上传图片文件"); } public void init(FilterConfig filterConfig) throws ServletException { } public void destroy() { } } ``` 这个过滤器会拦截所有以"/upload/"开头的URL,并检查上传文件名是否以.jpg、.jpeg、.png、.gif图片格式结尾。如果是图片文件,则直接放行,否则就拒绝上传并返回错误信息。你可以根据实际需求进行修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值