Jquery 的ajax实现文件上传,校验。

Html代码:

<div align="center">
		 <form id="uploadForm">
	            <input type="file" id="file" name="file"/>
	            <br/> 
	            <br/>
	   		    <div class="iDate date">
					<input type="text" id="datetime" name="datetime">
				<button type="button" class="addOn"></button>
				</div>
				<br/>
	            <br/>
				<input type="button" id="button" value="比较"/> 
	    </form>
	    <br/> 
	    <br/>
	    <p id="result" > </p>
</div>



Js代码:

$("#button").click(function(){ 
        
    	var obj = document.getElementById('file');
    	if(obj.value=='')
    	{
    		alert('请选择要核对的微信文件');
    		return;
    	}
    	var stuff=obj.value.match(/^(.*)(\.)(.{1,8})$/)[3];
    	if(stuff!='csv')
    	{
    		alert('文件类型不正确,请选择.csv文件');
    		return;
    	}
    	//获取文件名
    	var file = document.getElementById('file').files;
    	var filename = file[0].name;
    	
    	//获取选择的时间
    	var datetime = $("#datetime").val();
    	var strs= new Array(); //定义一数组
    	strs = datetime.split("-"); //字符分割
    	/* alert(strs[1]);
    	alert(strs[2]);  */
    	
    	if(filename.indexOf(strs[1]) < 0 || filename.indexOf(strs[2]) < 0){
    		alert("请选择和文件相对应的核对时间!");
    		return;
    	}
    	
    	var test = window.location.href;
    	var url = test.indexOf("?");
    	if(url == -1){
    		alert(test);
    	}else{
    		test = test.substr(0,url);
    		alert(test);
    	}
    	
    	var formData = new FormData();
        formData.append("myfile", document.getElementById("file").files[0]);
        formData.append("datetime", datetime);
    	$.ajax({
    	    url:test+'/ToCheck',
    	    type: 'POST',
    	    cache: false,
    	    data: formData,  
    	    processData : false,
    		contentType : false,
    	    success : function(jsonResponse) {
    	    	alert(jsonResponse.returnMessage);
    	    	/* $("#result").text(jsonResponse.returnMessage); */
    	    	$("#result").html(jsonResponse.returnMessage);
    	    }, 
   	    	error : function(jsonResponse) {
   	    		alert("核对出错!!");
   	    	} 
    	});
    	
 });



后台接收:

        @SuppressWarnings("unchecked")
	@RequestMapping(value = "/ToCheck")
	@ResponseBody
	public JsonResponse onFind(@RequestParam(value = "myfile", required = false)MultipartFile file,HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
		
		JsonResponse jsonResponse = new JsonResponse();
		jsonResponse.setReturnType(0);
		String fileName = file.getOriginalFilename();
		System.out.println(fileName);
		
		String datetime = request.getParameter("datetime");
		System.out.println(request.getParameter("datetime"));
		
		CommonsMultipartFile cFile = (CommonsMultipartFile) file;
        DiskFileItem fileItem = (DiskFileItem) cFile.getFileItem();
        InputStream inputStream = fileItem.getInputStream();
        FileInputStream fin = null;
	    // 如果是FileInputStream类型,进行转换
        if (inputStream instanceof FileInputStream) {
        	System.out.println("1111");
            fin = (FileInputStream) inputStream;
        }
        
        if(fin != null){
        	try {
        		jsonResponse.setReturnMessage(testCheck(datetime, fin));
			} catch (Exception e) {
				e.printStackTrace();
			}
        }else{
        	jsonResponse.setReturnMessage("上传的文件无法解析");
        }
        
        System.out.println(jsonResponse.getReturnMessage());
		return  jsonResponse;
		
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值