文件上传、下载

下载方式一:Jquery+SpringMVC

var form = $("<form>");

    form.attr("style", "display:none");

    form.attr("target", "");

    form.attr("method", "post");

    form.attr("action", "/projrctname/action.do");

    $("body").append(form);

    form.submit();

public static void DownUtil(HttpServletRequest request, HttpServletResponse response,String ctxPath,String fileCnName) throws Exception{
        response.setContentType("application/x-msdownload");  
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        BufferedInputStream bis = null;  
        BufferedOutputStream bos = null;  
        String downLoadPath = ctxPath + fileCnName;  
        long fileLength = new File(downLoadPath).length(); 
        String fileName = FileUtils.encodeFileName(request,fileCnName);
        response.setHeader("Content-Disposition", "attachment;filename="  
                + fileName);  
        response.setHeader("Content-Length", String.valueOf(fileLength));  
        bis = new BufferedInputStream(new FileInputStream(downLoadPath));  
        bos = new BufferedOutputStream(response.getOutputStream());  
        byte[] buff = new byte[2048];  
        int bytesRead;  
        while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {  
            bos.write(buff, 0, bytesRead);  
        }  
        bis.close();  
        bos.close();
    }

 

public static String encodeFileName(HttpServletRequest request,
			String fileName) throws UnsupportedEncodingException {
		String agent = request.getHeader("USER-AGENT");
		if (null != agent && -1 != agent.indexOf("MSIE")) {
			return URLEncoder.encode(fileName, "UTF8");
		} else if (null != agent && -1 != agent.indexOf("Mozilla")) {
			return "=?UTF-8?B?"
					+ (new String(Base64.encodeBase64(fileName
							.getBytes("UTF-8")))) + "?=";
		} else {
			return fileName;
		}
	}

 

 

 

 

上传

方式一:

<form id='fileSpan' style="display:inline" action="" method="post" enctype="multipart/form-data">
				<input type='file' id='j' name="fileSpanFile">
				<input type="submit" name="submitBB" class="btn" οnclick="sunbmitFileUp();" value="上传" />
			</form>

 

public ModelAndView upload(HttpServletRequest request, HttpServletResponse response) {
        DiskFileItemFactory factory=new DiskFileItemFactory();
        FileUtils fileUtils=null;
        // 设置内存缓冲区,超过后写入临时文件
        factory.setSizeThreshold(10240000);
        // 设置临时文件存储位置
        String base=FileUtils.getExcelFileName(request);
        File file=new File(base);
        if(!file.exists())
            file.mkdirs();
        factory.setRepository(file);
        ServletFileUpload upload=new ServletFileUpload(factory);
        // 设置单个文件的最大上传值
        upload.setFileSizeMax(10002400000l);
        // 设置整个request的最大值
        upload.setSizeMax(10002400000l);
        upload.setHeaderEncoding("UTF-8");
        
        try {
            MultipartHttpServletRequest multipartRequest=(MultipartHttpServletRequest)request;
            CommonsMultipartFile file1=(CommonsMultipartFile)multipartRequest.getFile("fileSpanFile");
            InputStream stream=file1.getInputStream();
            String fileName=file1.getOriginalFilename();
            fileName=base + File.separator + fileName;
            OutputStream bos=new FileOutputStream(fileName);
            int bytesRead=0;
            byte[] buffer=new byte[8192];
            while((bytesRead=stream.read(buffer, 0, 8192)) != -1) {
                bos.write(buffer, 0, bytesRead);
            }
            bos.close();
            // 关闭流
            stream.close();
            fileUtils=new FileUtils();
            
        } catch(Exception e) {
            e.printStackTrace();
        }
        Map<String, Object> model=new HashMap<String, Object>();
        model.put("msg", "success");
        return new ModelAndView("JSONView", model);

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值