夜微凉、的博客

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  76 随笔 :: 24 文章 :: 22 评论 :: 24万 阅读

 下面的代码简单的实现了java下载文件的步骤,看代码:

复制代码
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         
        //获取文件的类名
        String Path=this.getClass().getResource("/").getPath()+"JAVA笔记.txt";
        //对获取的路径进行解码
        Path=URLDecoder.decode(Path); 
        //获取文件名字和扩展名
        String FileName=Path.substring(Path.lastIndexOf("/")+1,Path.length()); 
        //设置输出文件名编码
        FileName=URLEncoder.encode(FileName, "UTF-8");
        //设置头信息
        response.setHeader("content-disposition", "attachment;filename="+FileName);
        response.setContentType("application/octet-stream");
        //获取文件流对象
        FileInputStream file=new FileInputStream(Path); 
        //定义字节数组,长度为文件流的长度
        byte[] buffers=new byte[file.available()];
        //获取输出流对象
        OutputStream writer=response.getOutputStream();
        //把流输出到字节数组中去
        file.read(buffers);
        //写到页面
        writer.write(buffers);
        //关闭流
        writer.close();
        file.close();
    }
复制代码

效果图:

 

posted on   夜、微凉  阅读(273)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示