文件下载时,怎么设定下载的文件为指定名字并且可以为中文

当我们设定可以下载文件这个功能的时候(在用SpringMVC框架的前提下),Controller文件是这么写的:

@RequestMapping("/download")
                public void download(String filename, HttpSession session, HttpServletResponse resp){
                    System.out.println(filename);
                    String path=session.getServletContext().getRealPath("/WEB-INF/upload/");
                    File file=new File(path,filename);

            try {                
                resp.setHeader("content-disposition","attachment;filename="+filename);
                StreamUtils.copy(new FileInputStream(file),resp.getOutputStream());
            } catch (IOException e) {
                e.printStackTrace();
            }

        }

这样子写,设定的名字结果不会是默认的download,而是文件原来的名字(我上传这个文件的时候名字是123.jpg),结果图为
在这里插入图片描述
但是如果我们要想下载下来的文件名默认为中文怎么办,就需要插入以下代码:

@RequestMapping("/download")
                public void download(String filename, HttpSession session, HttpServletResponse resp){
                    System.out.println(filename);
                    String path=session.getServletContext().getRealPath("/WEB-INF/upload/");
                    File file=new File(path,filename);

            try {
                filename="成龙";
                filename=new String(filename.getBytes("utf-8"),"iso8859-1");
                resp.setHeader("content-disposition","attachment;filename="+filename);
                StreamUtils.copy(new FileInputStream(file),resp.getOutputStream());
            } catch (IOException e) {
                e.printStackTrace();
            }

        }

其中`

            filename="成龙";
            filename=new String(filename.getBytes("utf-8"),"iso8859-1");`
            这两个就是需要插入的代码

首先需要个filename,设定filename里面需要什么中文,然后再设置中文的编码格式utf-8,iso8859-1,这样设定后,结果如图
在这里插入图片描述
完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值