ajax上传文件

本文介绍了一种使用Ajax进行文件上传的方法,并通过前后端配合实现文件类型的校验功能。该方案利用了jQuery和ajaxfileupload.js插件,在客户端完成文件选择后,通过Ajax异步将文件发送到服务器端进行校验。
摘要由CSDN通过智能技术生成

一般的时候都是用的struts提交表单进行文件上传

我做了一个校验 ,想用ajax进行文件的验证,这时候就需要使用ajax上传文件进行验证

 

首先需要 一个js包

 jquery  和  ajaxfileupload.js

ajaxfileupload 下载地址 :点击打开链接

 

使用方法:

前台js

$("#submitbtn").click(function(){
		$("#dmIfSubmit").attr("value" ,"1");
		$.ajaxFileUpload({
  			    url:'${base}/qiye/direcapply!checkFile.action',       //后台需要走的action
                secureuri:false,
                fileElementId:'files',                            //文件选择框的id属性
                 success: function (data, textStatus) {               //相当于java中try语句块的用法
                  alert( data.activeElement.innerHTML);
                    alert("上传图片成功!");
                   
                },
                error: function (data, status, e) {           //相当于java中catch语句块的用法
                   
                }

		});
		
	});


 

后台代码

public String checkFile() throws IOException{
		msg="";
		if(null == files){
			/**若文件为空返回""**/
			msg= "宣传材料不能为空";
		}else{
			// 判断数据是否正确
			// 文件后缀名
			int index = StringUtils.lastIndexOf(filesFileName, '.');
			if (index == -1) {
				msg= "文件类型错误!";
			}
			/**获取文件后缀名**/
			String extFileName = StringUtils.substring(filesFileName, index + 1);
			String forbitName = "doc-docx";
			String[] forbitNames = forbitName.split("-");
			for(int i= 0 ;i<forbitNames.length ; i++){
				 if(!extFileName.equalsIgnoreCase(forbitNames[i])){
					 msg= "请上传正确的附件,附件不能类型不能为"+forbitNames[i];
					 break;
				 }
			 }
			
		}
		HttpServletResponse response = (HttpServletResponse)ActionContext.getContext().get(ServletActionContext.HTTP_RESPONSE); 
		response.setHeader("content-type", "text/html;charset=utf-8");
		 //获得输出流
        OutputStream out = response.getOutputStream();
        //编码   发送响应体
        out.write(msg.getBytes("utf-8"));
		//response.getWriter().println(new String (msg.getBytes("ISO8859_1"), "utf-8"));
		return null;
	}


 

这样就可以使用ajax 获取页面文件

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值