如何让文件下载可以弹出对话框并且设置下载位置

本文主要针对的是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");
                StreamUtils.copy(new FileInputStream(file),resp.getOutputStream());
            } catch (IOException e) {
                e.printStackTrace();
            }

需要注意的地方就是,和那些点击了下载按钮后,下载的文件显示在当前网页中的朋友们,注意这一行:public void download(String filename, HttpSession session, HttpServletResponse resp),如果HttpServletResponse resp这个位置有人写成了输出流的请改成这个 HttpServletResponse resp

然后在下面StreamUtils.copy(new FileInputStream(file),resp.getOutputStream());中的resp.getOutputStream()记得写好,然后在上面写上请求头,内容第一个为请求的处理方式,第二个为弹出对话框的设定,最终结果如下:
在这里插入图片描述
点击后
在这里插入图片描述
弹出对话框并且可以填写下载路径

总结一下,就是需要一个HttpServletResponse resp这个参数,并且在下载文件中作为输出流,而且可以作为请求头设立请求处理方法和弹出对话框方法

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
当您在MATLAB环境中尝试保存文件,并且当前的设置配置为自动弹出文件名提示对话框,那么在执行保存操作时,系统会显示一个“Save As”对话框。这个对话框用于选择保存的位置以及文件的具体名称。 以下是创建、编辑、保存文件时可能会遇到的情况: ### 正常情况下的流程: 1. **打开工作区**:首先,您需要启动MATLAB并加载您的工作环境或创建一个新的脚本或函数。 2. **编写代码**:在命令窗口或M文件中输入您的代码或编辑现有的代码。 3. **准备保存**:在完成代码编写后,点击文件菜单中的“保存(S)”选项,或者直接按快捷键 `Ctrl + S` 进行保存。此时如果没有指定特定的文件路径及名字,则系统会弹出“Save As”对话框。 4. **填写信息**:在弹出对话框中,您可以选择文件所在的目录,通常默认目录是上次操作所使用的目录。然后,在“文件名”文本框中输入文件名,确保该文件名满足您系统的命名规则,并且考虑到文件扩展名,如 `.m` 对于脚本文件。 5. **确认保存**:最后,点击“保存”按钮即可将文件保存到指定位置。 ### 相关问题: 1. **如何自定义默认保存目录?** - 在MATLAB中可以设置默认保存目录,通过更改用户首选项。进入“首选项”设置,找到“路径与文件”,调整默认保存路径。 2. **为什么MATLAB总是提示我要输入文件名,而我不想每次都这样做?** - 如果您希望省去每次输入文件名的过程,可以在保存前先手动指定好目标路径并在命令行中使用 `save` 函数,例如 `save('myfile.m')` 来直接保存而不打开对话框。 3. **如果我忘记添加文件扩展名,MATLAB会怎样处理?** - 默认情况下,MATLAB会根据文件的内容类型选择合适的扩展名(例如 `.mat` 对于数据文件)。但是,如果您想要保存为脚本文件(`.m`),确保在保存之前检查并添加正确的扩展名,因为这影响了文件的功能和兼容性。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值