qq_14902083
qq_14902083
采纳率0%
2018-12-07 07:56 阅读 1.2k

用springmvc实现浏览器下载文件文件时,下载的文件名乱码

今天在做一个浏览器下载文件的功能,文件下载的功能是实现了,但下载的文件
名字出现了中文乱码

下面是代码
``` @RequestMapping(value = "download")
public ResponseEntity export(Long filePath) {

    HzAttachmentRecord hzAttachmentRecord = hzAttachmentRecordDao.selectByPrimaryKey(filePath);


    HttpHeaders headers = new HttpHeaders();
    File file = new File(hzAttachmentRecord.getAttachmentUrl()+"\\"+hzAttachmentRecord.getRealName());
    if(file==null){
        return null;
    }
    try {
        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        headers.setContentDispositionFormData("attachment", hzAttachmentRecord.getShowName());
        return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),
                headers, HttpStatus.CREATED);
    }catch (Exception e){
        return new ResponseEntity(null,headers,HttpStatus.NOT_FOUND);
    }
}



下面是问题截图
![图片说明](https://img-ask.csdn.net/upload/201812/07/1544169029_180503.jpg)


debug测试了下,attachment对应的值是正确的文件名,应该是传输到前端
时编码格式有点问题


大概情况就是这样,网上找了小半天也没找到解决方法,有没有大佬知道怎么
解决,万分感谢
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • qq_14902083 qq_14902083 2018-12-07 07:57

    已找到解决方法了,

    headers.setContentDispositionFormData("attachment", new String(hzAttachmentRecord.getShowName().getBytes("utf-8"), "ISO8859-1"));
    

    转化下编码格式就好了

    点赞 1 评论 复制链接分享

相关推荐