上传文件(可用ajaxfileupload.js插件)

前端之家收集整理的这篇文章主要介绍了上传文件(可用ajaxfileupload.js插件)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

因为浏览器之间有差异,考虑到兼容性,选择在后台进行文件的格式判断,文件大小约束,比较好的一个方案前台代码

function ajaxFileUpload(){
		alert("hi");
			var filepath = $("input[<span style="background-color: rgb(51,51,255);">name</span>='file']").val();
	        var extStart = filepath.lastIndexOf(".");
	        var ext = filepath.substring(extStart,filepath.length).toUpperCase();
	       	
		    $.ajaxFileUpload(
		        {
			     url:'<%=request.getContextPath() %>/inSer/scwtUpload',//需要链接到服务器地址
			     secureuri:false,file<span style="background-color: rgb(51,255);">ElementId</span>:'file',//文件选择框的id属性
			     dataType: 'json',//服务器返回的格式,可以是json
			     success: function (data,status)            //相当于java中try语句块的用法
			     {      
			         alert(data.responseText);
			     },error: function (data,status,e)            //相当于java中catch语句块的用法
			     {
			    	 alert(data.responseText);
			     }
			     
		 		}
		        
		   );
		}
后台代码:

@RequestMapping(value="/scwtUpload",method=RequestMethod.POST)
	@ResponseBody
	public void scwtUpload(@RequestParam("file") CommonsMultipartFile file,HttpServletRequest request,HttpServletResponse response) throws IOException,JSONException{ 

		String result = "上传成功";
		boolean flag = true ;
		long size = file.getSize();
		String fieldName = file.getFileItem().getName();
		int index = fieldName.indexOf(".");
		String extension = fieldName.substring(index+1).toUpperCase();
		if(!extension.equals("DOC")){
			result = "只允许上传DOC格式文件";
			flag = false;
		}
        
        if(size>10485760){
        	result = "文件大小超过10M,请重新上传文件";
        	flag = false;
        }

        	FileOutputStream os = null;
        	InputStream in = null;
	        if(flag){
	        	try{
	        		Date date = new Date();
	        		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	        		String time = sdf.format(date).replaceAll("-","").replaceAll(":","").replaceAll(" ","");
	        		String path = request.getSession().getServletContext().getRealPath("/")+time+file.getOriginalFilename();
		            os = new FileOutputStream(path);  
		            in = file.getInputStream();  
		            int b=0;  
		            while((b=in.read())!=-1){  
		                os.write(b);  
		            }  
		            os.flush();  
	        	}finally{
	        		os.close();  
	 	            in.close();
	        	}
	        	
	             
	        	
	        }
        	
        response.setContentType("text/html;charset=UTF-8"); 
        response.getWriter().write(result);

	}

猜你在找的Ajax相关文章