首页 > 编程语言 >java 根据URL 下载文件

java 根据URL 下载文件

时间:2023-05-05 15:13:35浏览次数:40  
标签:outputStream java URL fileName download fileUrl null response 下载

1、废话不多说,如下图所示

    @ApiOperation("文件下载")
    @GetMapping("/download")
    public void download(@RequestParam("fileUrl") String fileUrl, @RequestParam("fileName") String fileName, HttpServletResponse response) throws IOException {
        log.info("download--fileUrl: {},fileName: {}",fileUrl,fileName);

        InputStream download = null;
        ServletOutputStream outputStream = null;
        try{
            URL url = new URL(fileUrl);
            // HttpURLConnection connection = (HttpURLConnection)url.openConnection();
            // connection.setConnectTimeout(5*1000);
            // connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
            // download = connection.getInputStream();
            download = url.openStream();

            response.addHeader("Cache-Control", "no-cache, no-store, must-revalidate");
            response.addHeader("charset", "utf-8");
            response.addHeader("Pragma", "no-cache");
            String encodeName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString());
            response.addHeader("content-disposition", "attachment;fileName="+encodeName);
            outputStream = response.getOutputStream();
            outputStream.write(IOUtils.toByteArray(download));

        }catch (Exception e){
            log.error("文件下载失败",e);

        }finally{
            if(download != null){
                download.close();
            }
            if(outputStream != null){
                outputStream.close();
            }
        }
    }

标签:outputStream,java,URL,fileName,download,fileUrl,null,response,下载
From: https://www.cnblogs.com/linhuaming/p/17374157.html

相关文章

  • C# 通过ICSharpCode.SharpZipLib实现文件压缩下载
    通过管理NuGet包添加ICSharpCode.SharpZipLib引用以完成,多文件或者文件夹压缩后下载效果1、压缩文件实体类///<summary>///文件路径集合,文件名集合,压缩文件名///</summary>publicclassFileNameListZip{///<summary>///文件路......
  • Failed to auto-configure a DataSource: 'spring.datasource.url' is not specified
    导入一个新的springbootmaven项目启动一直报这个错,查出来的答案都说是加注解把数据库扫描给排除掉,这种方式其实有点鸵鸟,项目原先是没问题的,现在导入到自己的环境启动不起来,那肯定是不能去改动代码的。排查了一遍,发现是项目中的resources文件没有指定成资源文件,所以找不到数据库......
  • 01_java面向对象编程语言的思考
    java的跨平台在各个操作平台上,有一层JVM(java虚拟机),这是支撑java程序能够运行的基础。java源代码→(编译)→java字节码→(运行)→java虚拟机jdk:java开发工具包jre:java运行环境jvm:java虚拟机api:应用程序接口程序目录主要结构lib目录:存放Java的类库文件bin:java编译器,解释器工具......
  • JAVA笔记2
    Java语言基础包括以下内容:数据类型:Java的数据类型分为基本数据类型和引用数据类型两种。其中,基本数据类型包括整型、浮点型、字符型和布尔型,而引用数据类型则包括类、接口、数组等。运算符:Java支持多种运算符,包括算术运算符、比较运算符、逻辑运算符、位运算符等。这些运算......
  • Linux定时提交网站url到百度站长脚本
    以下是一个使用Shell编写的示例脚本,用于在Linux下定时提交URL到百度搜索引擎:#!/bin/bash#要提交的URL列表urls=('http://www.example.com/page1.html''http://www.example.com/page2.html''http://www.example.com/page3.html')#百度站长平台API地址api......
  • java:找不到符号 符号:变量:log
    原文链接:https://blog.csdn.net/zhanghaoninhao/article/details/129180810问题:java:找不到符号 符号:变量:log环境:springbootidea解决方法:在idea中,点击file-Settings,打开配置页面,如图红框位置,输入:-Djps.track.ap.dependencies=false ......
  • Aria2 下载工具部署(local)
    Aria2下载工具部署(docker)中介绍了使用docker部署Aria2的方法,如果已经安装了docker,执行起来是比较简单的。但如果觉得每次使用Aria2还需要启动docker这个操作有点重,可以考虑使用本地部署的方式。这里使用scoop安装aria2和ariaNgScoopInstaller/Scoop:Acomman......
  • Java——lambda表达式
    Javalambda表达式是Java8中引入的一种新特性,它可以用来简化代码并提高程序员的生产力。Lambda表达式本质上就是一个匿名函数,它没有名称、修饰符和返回类型。在使用lambda时需要注意以下几点:Lambda表达式由箭头(->)分隔成两部分:左侧为参数列表,右侧为所需执行的功能。如果只有一......
  • Java异常
    Java的异常是指在程序运行过程中出现的错误或异常情况,例如除数为零、数组越界、空指针等。Java中的异常分为两种:受检异常和非受检异常。受检异常是指在编译时就能够检测到的可能发生的问题,必须要进行处理才能通过编译。这些问题通常与外部环境有关,并且可以被预见并避免。比如文件......
  • Java Web超大文件上传和断点续传的实现
    ​前言文件上传是一个老生常谈的话题了,在文件相对比较小的情况下,可以直接把文件转化为字节流上传到服务器,但在文件比较大的情况下,用普通的方式进行上传,这可不是一个好的办法,毕竟很少有人会忍受,当文件上传到一半中断后,继续上传却只能重头开始上传,这种让人不爽的体验。那有没有比......