java 接受带有中文的get请求文件下载时的问题

java

参数是接受到了 , 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);
确实吧路劲这么着的转化一下就行了

以上是 java 接受带有中文的get请求文件下载时的问题 的全部内容, 来源链接: utcz.com/z/392173.html

回到顶部