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

  1. @ApiOperation(value = "文件下载/图片预览")
  2. @GetMapping(value = "/file/{type:download|view}")
  3. public Object fileDownloadOrView(ModelMap modelMap,String filePath,String fileName,@PathVariable ("type") String type,
  4. HttpServletResponse responsen ) throws Exception {
  5. if(StringUtils.isBlank(filePath)){
  6. modelMap.put("msg", "参数错误!!!");
  7. return setModelMap(modelMap, HttpCode.BAD_REQUEST);
  8. }
  9. String note=new String(filePath.trim().getBytes("ISO-8859-1"), "UTF-8");
  10. File file = new File(note);
  11. if(file.exists() && file.isFile()){
  12. if("download".equals(type)){
  13. String fileSuffix = file.getName().substring(file.getName().lastIndexOf("."),file.getName().length());
  14. if(StringUtils.isEmpty(fileName)){
  15. fileName = UUID.randomUUID().toString();
  16. }
  17. fileName = fileName+fileSuffix;
  18. try {
  19. responsen.setContentType("multipart/form-data");
  20. responsen.addHeader("Content-Length", "" + file.length());
  21. responsen.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8"));
  22. } catch (UnsupportedEncodingException e1) {
  23. e1.printStackTrace();
  24. }
  25. }
  26.  
  27. FileInputStream inputStream = null;
  28. OutputStream outputStream = null;
  29. try {
  30. inputStream = new FileInputStream(file);
  31. outputStream = responsen.getOutputStream();
  32. IOUtils.copy(inputStream, outputStream);
  33. } catch (IOException e) {
  34. e.printStackTrace();
  35. } finally {
  36. try {
  37. inputStream.close();
  38. outputStream.flush();
  39. outputStream.close();
  40. } catch (IOException e) {
  41. e.printStackTrace();
  42. }
  43. }
  44. return null;
  45. } else {
  46. modelMap.put("msg", "文件不存在!!!");
  47. return setModelMap(modelMap, HttpCode.CONFLICT);
  48. }
  49. }

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

  1. String note=new String(filePath.trim().getBytes("ISO-8859-1"), "UTF-8");
  1. File file = new File(note);
    确实吧路劲这么着的转化一下就行了

java 接受带有中文的get请求文件下载时的问题的更多相关文章

  1. get请求url中带有中文参数出现乱码情况

    在项目中经常会遇到中文传参数,在后台接收到乱码问题.那么在遇到这种情况下我们应该怎么进行处理让我们传到后台接收到的参数不是乱码是我们想要接收的到的,下面就是我的一些认识和理解. get请求url中带有 ...

  2. ReadyAPI/soapUI发送post请求json格式(带有中文字符),后台获取参数为空

    解决:请求编码格式默认为空,在"TestCase"的指定Step的Request Properties中, 改Encoding编码格式为UTF-8. 原文:soapUI发送post ...

  3. 1.JAVA WEB 笔记中文乱码

    JAVA WEB 乱码问题解析 乱码原因 在Java Web开发过程中,经常遇到乱码的问题,造成乱码的原因,概括起来就是对字符编码和解码的方式不匹配. 既然乱码的原因是字符编码与解码的方式不匹配,那么 ...

  4. JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)

    本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...

  5. Java Servlet API中文说明文档

    Java Servlet API中文说明文档 目 录 1.... Servet资料 1.1      绪言 1.2      谁需要读这份文档 1.3      Java Servlet API的组成 ...

  6. JSP文件下载时文件名在ie和firefox下面文件名不一致极其超链接中文乱码的问题的改进

    response.setContentType("application/octet-stream;charset=UTF-8"); fileName=java.net.URLEn ...

  7. Java利用httpasyncclient进行异步HTTP请求

    Java利用httpasyncclient进行异步HTTP请求 前段时间有个需求在springmvc mapping的url跳转前完成一个统计的业务.显然需要进行异步的处理,不然出错或者异常会影响到后 ...

  8. Java编程中中文乱码问题的研究及解决方案

    0 引言 Java最大的特性是与平台的无关性及开发环境的多样性.字符串被Java应用程序转化之前,是根据操作系统默认的编码方式编码.Java语言内部采用Unicode编码,它是定长双字节编码,即任何符 ...

  9. [转载]将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,解决办法

    eclipse 代码中文注释乱码 求解决 将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclips ...

随机推荐

  1. C# 利用发射动态创建泛型类型的对象,泛型类型支持带惨的构造函数

    static class Program { static void Main(string[] args) { var aaa = Create<AAA>("aaa" ...

  2. koa 的 Context

    context上下文对象: 该对象类似原生http中的 req + res - 该对象的req,res属性也存在,就是原生没有包装过的req,res - 简单说: context 对象就是从请求到响应 ...

  3. html中设置一个div可编辑文本

    <div contenteditable="true"></div> <!-- outline: none;设置获取焦点没有高亮边框 -->

  4. SQL 更新

    SQL UPDATE 语句(更新表中的记录) UPDATE 语句用于更新表中的现有记录. SQL UPDATE 语句 UPDATE 语句用于更新表中已存在的记录. SQL UPDATE 语法 UPDA ...

  5. 【基础】Pipeline

    1. 参考的优秀文章 Request/Response protocols and RTT 2. 来源 原来,系统中一个树结构的数据来源是Redis,由于数据增多.业务复杂,查询速度并不快.究其原因, ...

  6. Yii2中一些常用的参数

    系统类型: <?= php_uname() ?> 解译引擎: <?= $_SERVER['SERVER_SOFTWARE'] ?>, Zend: <?= Zend_Ver ...

  7. NX二次开发-基于MFC界面对话框与NX交互的开发

    打开VS2013 点击新建,选择MFC DLL 点击确定 点下一步 什么都不改,直接点完成 进来之后先编译一下,看是否编译成功 打开项目属性,更改这几处 $(UGII_BASE_DIR)\ugopen ...

  8. Android API Levels 详解

    Android API Levels 当你开发你的Android应用程序时,了解该平台API变更管理的基本方法和概念是很有帮助的.同样的,知道API级别标识以及该标识如何保障你的应用与实际硬件设备相兼 ...

  9. 牛客Another Distinct Values

    题目 我一开始试了一下n=3,发现不行,于是就猜测只有2可以,交了一发,通过了50%.所以我猜测只有偶数可以,奇数都不行. 中间空白部分放n=2的情况就行.因为n=2的情况时,最大只有2,所以我们可以 ...

  10. jQuery 对文档的操作

    通过jquery方式实现页面各种节点的追加.修改.删除.复制等操作 节点追加 1 父子关系追加 /*************************************************** ...