首页 > 其他分享 >文件下载代码实现

文件下载代码实现

时间:2023-09-05 21:49:26浏览次数:32  
标签:文件 filePath 代码 len br new response 下载 out

 1 public void downLoad(String filePath, HttpServletResponse response, boolean isOnLine) throws Exception {
 2     File f = new File(filePath);
 3     if (!f.exists()) {
 4       response.sendError(404, "File not found!");
 5       return;
 6     }
 7     BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));
 8     byte[] buf = new byte[1024];
 9     int len = 0;
10  
11     response.reset(); // 非常重要
12     if (isOnLine) { // 在线打开方式
13       URL u = new URL("file:///" + filePath);
14       response.setContentType(u.openConnection().getContentType());
15       response.setHeader("Content-Disposition", "inline; filename=" + f.getName());
16       // 文件名应该编码成UTF-8
17     } else { // 纯下载方式
18       response.setContentType("application/x-msdownload");
19       response.setHeader("Content-Disposition", "attachment; filename=" + f.getName());
20     }
21     OutputStream out = response.getOutputStream();
22     while ((len = br.read(buf)) > 0)
23       out.write(buf, 0, len);
24     br.close();
25     out.close();
26   }

标签:文件,filePath,代码,len,br,new,response,下载,out
From: https://www.cnblogs.com/jinfangwei/p/17680893.html

相关文章

  • 文件上传基础学习
    文件上传基础学习一、基础知识1、上传功能存在漏洞通常,Web应用程序允许用户上传文件,例如图像、文档或其他类型的文件,以便后续处理或共享。漏洞出现在服务器未正确验证或限制上传文件的类型、大小和位置时。2、不正确的输入验证:文件上传漏洞通常是由于不正确的输入验证引起的......
  • 代码暂存
    #include<stdio.h>#include<stdlib.h>#pragmawarning(disable:4996)typedefstruct{intdata[1000];intlength;}SqList;voidCreatList(SqList*&L,inta[],intn){inti=0,k=0;L=(SqList*)malloc(sizeof(SqList));......
  • 一行代码美化Python异常输出
     安装python-mpipinstallpretty_errors使用先来试试一个简单的错误。importpretty_errorsprint(1/0) 如果不使用pretty_errors报错信息如下:   bug少的时候,可能没有什么太大区别,当报错信息铺满一整页,差距就体现出来了 个性化配置如需......
  • 数据结构代码题-链表
    链表单链表单链表结构体的声明:typedefstructLink{ intdata;//代表数据域 structLink*next;//代表指针域,指向直接后继元素}link;//link为节点名,每个结点都是一个link结构体另一种:typedefstructLNode{ElemTypedata;structLNode*next;}LNode,*Link......
  • Paddle图神经网络训练-PGLBox代码阅读笔记
    图存储部分paddle/fluid/framework/fleet/heter_psgraph_gpu_wrapper.hGPU图主入口graph_gpu_ps_table.hGPU图的主要存储结构,neighbor采样等都在这里完成gpu_graph_node.h节点,边,邻居等数据结构定义paddle/fluid/distributed/ps/table/common_graph_tabl......
  • c++/c中关于头文件的探索
    //Fin.h#ifndefFIN_H#defineFIN_Hintadd(inta,intb);#endif//Fin.cpp#include"Fin.h"intadd(inta,intb){returna+b;}//Test1.cpp#include<iostream>#include"Fin.h"//包含Fin.h来调用函数intmain(){......
  • linux日志文件的查询方式
    cdlog到指定log日志文件目录ls查看当前文件存在的目录catjujube.log可以查看较小的日志文件vijujube.log查看较大的日志文件(常用)/(查询的字符)可以定位到这个字符的位置N继续向下检索:$回到日志文件的最底层可以用于从底层开始查找使用:$后配合使......
  • 如何使用Java在华为云OBS上传大文件?
    在互联网时代,数据量的快速增长已成为了一种普遍的趋势。随着云计算技术的发展,云存储服务成为了存储和管理大量数据的一种重要手段。华为云对象存储服务(OBS)作为一种高可靠、高可用、高性能的云存储服务,得到了广泛的应用和认可。在使用华为云OBS上传大文件时,我们可以使用Java代码实现......
  • 深入探索Linux文件链接技术:ln命令的妙用
    当谈及Linux系统中的文件管理和链接技术,ln命令是一个不可或缺的工具。ln命令用于创建硬链接和软链接,它在Linux文件系统中发挥着重要作用,为用户提供了更大的灵活性和组织能力。在本文中,我们将深入探讨ln命令是什么,以及如何使用它来创建链接,以提高文件管理的效率。什么是ln......
  • 代码片段
    去掉多文档超链接(ecode)没有href属性是如何完成跳转的使用window.location.hash.indexOf()判断是哪个页面通过WfForm.getBaseInfo可以获取当前流程中的信息通过节点信息的html鼠标聚集,可以看到对应节点idecodeSDK.overwritePropsFnQueueMapSet('WeaBrowser'......