文件下载我们经常会用到,把资源放到服务器然后开启就可以访问资源了。。。就以tomcat服务器为例

我服务器上有个img文件夹里面有123.jpg的文件,我启动服务器

可以访问到这个图片 , 但是路径名称和文件名称是固定的 ;但是我们发现有些下载链接下载下来的文件文件名称是变化了 。。。。 还有就是,这个图片我本来是想下载了, 但是浏览器却默认给我展示了 。。。。 这个就尴尬了 。。
如果自定义文件的名称了 ? 直接上代码。。。


import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import java.util.HashMap;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;import net.sf.json.JSONObject;@RequestMapping("/test")
@Controller
public class TestController {private static Logger logger = Logger.getLogger(TestController.class);@SuppressWarnings({ "unchecked", "rawtypes" })@RequestMapping(value = "/download.do")public void downloadAction(String fileName,HttpServletRequest request, HttpServletResponse response) throws Exception {response.setContentType("application/x-msdownload");response.setHeader("Content-Disposition", "attachment;filename=" + fileName);String path = "/Users/apple/Desktop/"+fileName;InputStream inputStream = new FileInputStream(path);byte[] buffer = new byte[1024];int len = 0;while ((len = inputStream.read()) != -1) {inputStream.read(buffer, 0, len);}inputStream.close();}
}http://127.0.0.1:8088/xxddeng/test/download.do?fileName=100.wmv

这是一个接口 , 接口接收一个参数

我们可以看到,下载文件就像调用接口一样可以自定义 。。。。
其实有时候我们还会有一种需求就是有多个文件然后需要压缩下载

    @SuppressWarnings({ "unchecked", "rawtypes" })@RequestMapping(value = "/download2.do")public void download2Action(HttpServletRequest request, HttpServletResponse response) throws Exception {String downloadName = "压缩包.zip";response.setContentType("application/x-msdownload");response.setHeader("Content-Disposition", "attachment;filename=" + downloadName);String path1 = "/Users/apple/Desktop/100.wmv";String path2 = "/Users/apple/Desktop/101.wmv";String path3 = "/Users/apple/Desktop/102.wmv";File files[] = new File[] { new File(path1), new File(path2), new File(path3) };File zipFile = new File("/Users/apple/Desktop/压缩包.zip");ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFile)); // 声明压缩流对象for (File file : files) {InputStream input = new FileInputStream(file); // 定义文件的输入流zipOut.putNextEntry(new ZipEntry(file.getName())); // 设置ZipEntry对象zipOut.setComment("hebiao.online"); // 设置注释int temp = 0;while ((temp = input.read()) != -1) { // 读取内容zipOut.write(temp); // 压缩输出}input.close(); // 关闭输入流}zipOut.close(); // 关闭输出流}

Java文件下载,自定义下载名称相关推荐

  1. java 文件下载 迅雷下载_java文件下载用迅雷

    Stringannexid=request.getParameter("id")==null?"":request.getParameter("id& ...

  2. java上传下载_Java文件上传与文件下载实现方法详解

    本文实例讲述了Java文件上传与文件下载实现方法.分享给大家供大家参考,具体如下: Java文件上传 数据上传是客户端向服务器端上传数据,客户端向服务器发送的所有请求都属于数据上传.文件上传是数据上传 ...

  3. Java Web 实现下载文件

    一.JAVA服务端 1.实现代码 response.reset(); String fileName = URLEncoder.encode("成绩.xlsx", "UT ...

  4. java文件下载功能代码(单文件下载、多文件批量打包下载)——普遍适用

    一.前言   程序员在做web等项目的时候,往往都需要添加文件上传.下载.删除的功能,有时是单文件,有时多文件批量 操作,而这些功能的代码程序员可以自己收藏起来当成工具使用,这样,程序员在进行程序设计 ...

  5. java 文件下载代码_java文件下载代码实例(单文件下载和多文件打包下载)

    这篇文章主要介绍了java文件下载代码实例(单文件下载和多文件打包下载),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最近项目有需要写文件下载相关 ...

  6. JAVA下载文件的几_详解Java文件下载的几种实现方式

    Java文件下载的几种方式,具体如下: public HttpServletResponse download(String path, HttpServletResponse response) { ...

  7. 自适应来电模拟器微信小程序源码下载自定义来电名称归属地铃声等

    模拟一个来电电话,可以正常接通,挂断等 让你假装有事,迅速离场,避免尴尬等等! 比如使用场景: 相亲的时候遇到奇葩,想找接口离开. 场价party想脱身的时候 或者恶搞,遇到坏人等等各种场景都可以使用 ...

  8. java文件下载做apk安装包下载,当下载类型为.apk时,用手机谷歌浏览器下载完后点击打开不能直接启动安装,而是打开压缩文件管理。

    java文件下载做apk安装包下载,当下载类型为.apk时,用手机谷歌浏览器下载完后点击打开不能直接启动安装,而是打开压缩文件管理. uc浏览器可以正常,自带的谷歌不正常,解决方法为,在下载设置res ...

  9. java 文件下载详解_Java 从网上下载文件的几种方式实例代码详解

    废话不多说了,直接给大家贴代码了,具体代码如下所示: package com.github.pandafang.tool; import java.io.BufferedOutputStream; i ...

最新文章

  1. 从校园情侣到教授夫妇,520当天他们携手发顶刊!
  2. 皮一皮:现在知道公司老说信息完整的重要性...
  3. Pixhawk之姿态解算篇(2)_mahony算法分析
  4. foreman源NO_PUBKEY 6F8600B9563278F6
  5. Docker教程-仓库管理
  6. java 导入导出txt文件_Java读取和写入txt文件
  7. 《深入理解 Spring Cloud 与微服务构建》第七章 负载均衡 Ribbon
  8. JS三大经典变量命名法
  9. 如何用Postman mock服务?
  10. 关于Windows 2019 antimalware 进程占用CPU 过多的处理方法 关闭windows 病毒防护的方法...
  11. centos mysql proxy_CentOS7搭建MysqlProxy实现读写分离
  12. ctf 选择题 题库_看雪CTF题库平台 | 赛练结合,助你夺冠!
  13. 方正台式计算机初始bios密码,方正电脑刷BIOS的方法
  14. jmeter之badboy
  15. 电商项目5:商品模块
  16. c语言转义字符 pdf,C语言教程讲义 pdf版
  17. 一次关于SingleTask的填坑
  18. ASP .NET MVC项目研发总结
  19. 服务器空间在线解压程序及使用教程
  20. Linux下调试器工作原理

热门文章

  1. 设置两个无线路由器同时无线上网的方法
  2. RationalDMIS 2020快速输出极半径和极角
  3. Oracle 的 SQL 语句优化方法:
  4. 普鸥知识产权|商标被驳回怎么办?别慌,试试这几招
  5. Python爬虫入门学习例子之煎蛋网(福利哦)
  6. python之禅中文原文_python之禅 pdf
  7. 串口测试软件发指令给s7-200,S7-200CPU的通信口自由口设置
  8. 《The Swift Programming Language》之语言参考:类型
  9. 局域网、网段和子网意思
  10. redis 数据类型之有序集合(sorted set) 详细介绍