zoukankan      html  css  js  c++  java
  • java 接受带有中文的get请求文件下载时的问题

    参数是接受到了 , debug的时候也能看的到 , 但是奇怪的是就是找不到文件

    @ApiOperation(value = "文件下载/图片预览")
    	@GetMapping(value = "/file/{type:download|view}")
    	public Object fileDownloadOrView(ModelMap modelMap,String filePath,String fileName,@PathVariable ("type") String type,
    			HttpServletResponse responsen ) throws Exception {
    		if(StringUtils.isBlank(filePath)){
    			modelMap.put("msg", "参数错误!!!");
    			return setModelMap(modelMap, HttpCode.BAD_REQUEST);
    		}
    		String note=new String(filePath.trim().getBytes("ISO-8859-1"), "UTF-8");
    		File file = new File(note);
    		if(file.exists() && file.isFile()){
    			if("download".equals(type)){
    				String fileSuffix  = file.getName().substring(file.getName().lastIndexOf("."),file.getName().length());
    				if(StringUtils.isEmpty(fileName)){
    					fileName = UUID.randomUUID().toString();
    				} 
    				fileName = fileName+fileSuffix;
    				try {
    					responsen.setContentType("multipart/form-data");   
    					responsen.addHeader("Content-Length", "" + file.length());
    					responsen.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8"));
    				} catch (UnsupportedEncodingException e1) {
    					e1.printStackTrace();
    				}
    			}
    			
    			FileInputStream inputStream = null;
    			OutputStream outputStream = null;
    			try {
    				 inputStream = new FileInputStream(file);
    				 outputStream = responsen.getOutputStream();
    				 IOUtils.copy(inputStream, outputStream);
    			} catch (IOException e) {
    				e.printStackTrace();
    			} finally {
    				try {
    					inputStream.close();
    					outputStream.flush();
    					outputStream.close();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    			return null;
    		} else {
    			modelMap.put("msg", "文件不存在!!!");
    			return setModelMap(modelMap, HttpCode.CONFLICT);
    		}
    	}
    

      虽然不知道为什么原因 , 但是 

    String note=new String(filePath.trim().getBytes("ISO-8859-1"), "UTF-8");
    File file = new File(note);
    确实吧路劲这么着的转化一下就行了
  • 相关阅读:
    Xcode及模拟器SDK下载
    修改Navigation Bar上的返回按钮文本颜色,箭头颜色以及导航栏按钮的颜色
    NJKWebViewProgress ——webview进度条
    _tmain 和 main
    XSS原理
    逆向工程
    guide
    网络数据包
    Linux 文件系统 和文件属性
    Linux 文件系统
  • 原文地址:https://www.cnblogs.com/sunjinggege/p/11226664.html
Copyright © 2011-2022 走看看