SpringMVC文件的上传下载及数据库EXCEL导出

7 篇文章 0 订阅

前段时间要做文件的上传下载,现在把它写出来,供大家分享

首先是excel导出数据库

@RequestMapping("/exportCustomer")  
    public void exportCustomer(ModelMap model,HttpServletRequest request,HttpServletResponse response) {  
    	SysUser models = UserHelper.getCurrentUser();
        //TODO 如需添加条件  
        //model.addAttribute("username", nameStr);  
        //获取需要导出的数据List  
//        List<CMcustomer> cusList=customerService.exportCustomer(model); 
//        List<Units> cusList = unitsService.zTreeAll(models.getId());
    	List<Units> all = unitsService.getAll();
            //使用方法生成excle模板样式  
        
        HSSFWorkbook workbook = unitsService.createExcel(all, request);  
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); // 定义文件名格式  
  
        try {  
        //定义excle名称 ISO-8859-1防止名称乱码  
            String msg = new String(  
                    ("组织机构信息_" + format.format(new Date()) + ".xls").getBytes(),  
                    "ISO-8859-1");  
            // 以导出时间作为文件名  
            response.setContentType("application/vnd.ms-excel");  
            response.addHeader("Content-Disposition", "attachment;filename="  
                    + msg);  
            ServletOutputStream outputStream = response.getOutputStream();
            workbook.write(response.getOutputStream());  
        } catch (IOException e) {  
//            log.error(e);  
        	e.getStackTrace();
        }  
    } 

然后是文件的上传功能

@RequestMapping(value="/formExcel",method = RequestMethod.POST)
	@ResponseBody
	public String formExcel( MultipartFile upExcel ){
		
        try {
			String originalFilename = upExcel.getOriginalFilename();
			if(originalFilename==null){
				return "请选择要上传的文件";
			}
			String uploadPath = "upload/document"+ "/" + UUID.getUUID() + originalFilename.substring(originalFilename.lastIndexOf("."));
		
					FileStorageHelper.transferFile(upExcel.getInputStream(), uploadPath);
					Document document = new Document();
					document.setUrl(uploadPath);
					documentService.save1(document);
					return "上传文件成功";
				
		} catch (Exception e) {
			e.printStackTrace();
				
			return "导入文件失败";
		}
	}

最后是文件下载

/**
	    *  下载文件
	    * @param urldata 文件路径
	    * @param response
	    */
	   @RequestMapping("/download")
       public void download(String urldata,HttpServletResponse response){
    	   
		   String rootPath = SpringMVCUtil.getRequest().getSession().getServletContext().getRealPath("/");// 获取项目根目录
		   
		    try {
				File file = new File(rootPath+urldata);// path是根据日志路径和文件名拼接出来的
				String filename = file.getName();// 获取日志文件名称
				InputStream fis = new BufferedInputStream(new FileInputStream(rootPath+urldata));
				byte[] buffer = new byte[fis.available()];
				fis.read(buffer);
				fis.close();
				response.reset();
				// 先去掉文件名称中的空格,然后转换编码格式为utf-8,保证不出现乱码,这个文件名称用于浏览器的下载框中自动显示的文件名
				response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.replaceAll(" ", "").getBytes("utf-8"),"iso8859-1"));
				response.addHeader("Content-Length", "" + file.length());
				OutputStream os = new BufferedOutputStream(response.getOutputStream());
				response.setContentType("application/octet-stream");
				os.write(buffer);// 输出文件
				os.flush();
				os.close();
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
    	   
       }
文件的下载可以自己选择要下载的位置

前台页面要这样请求下载的地址

//下载
		function updateLoad(id,name) {
        	
			$.ajax({
				type:"POST",
				url:"/Document/download",
				data:{"urldata":id},
				success:function(msg){
					
					window.open('/Document/download?urldata='+id); 
				}
			});
			
// 			alert(id);
		}

这就是基本的代码篇了,欢迎互相交流


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值