文件下载案例

一、需求分析

其中,浏览器可以直接解析图片,不能解析视频,所以视频的超链接是下载;

加载文件,则需要知道文件的真是路径(ServletContext);

前端:

二、代码实现

其中,ServletOutputStream字节流会自动刷新,即自动将缓冲区的数据持久化到真实文件流中,不用手动刷新和关闭,servlet服务结束会自动销毁;

三、解决文件乱码问题

1、原因是因为不同的浏览器编码不一样,版本不同兼容性也不同;

解决方法是根据请求头判断浏览器,设置对应的响应;

2、代码实现

这是根据不同的浏览器的请求头信息和含中文的文件名参数列表的工具类;

原文地址:https://www.cnblogs.com/wmqiang/p/11595272.html

时间: 2024-08-30 16:54:05

文件下载案例的相关文章

Java 之 Response 文件下载案例

文件下载需求: 1. 页面显示超链接 2. 点击超链接后弹出下载提示框 3. 完成图片文件下载 分析过程: 1. 超链接指向的资源如果能够被浏览器解析,则在浏览器中展示,如果不能解析,则弹出下载提示框.不满足需求 2. 任何资源都必须弹出下载提示框 3. 使用响应头设置资源的打开方式: content-disposition:attachment;filename=xxx 步骤: 1. 定义页面,编辑超链接href属性,指向Servlet,传递资源名称filename 2. 定义Servlet

文件下载案例 January 27,2020

## 案例: * 文件下载需求: 1. 页面显示超链接 2. 点击超链接后弹出下载提示框 3. 完成图片文件下载 * 分析: 1. 超链接指向的资源如果能够被浏览器解析,则在浏览器中展示,如果不能解析,则弹出下载提示框.不满足需求 2. 任何资源都必须弹出下载提示框 3. 使用响应头设置资源的打开方式: * content-disposition:attachment;filename=xxx * 步骤: 1. 定义页面,编辑超链接href属性,指向Servlet,传递资源名称filename

Servlet案例2:文件下载

首先,解决两个小问题 1.输入中文乱码问题 一个小Demo即可解决: package demo; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.

JavaWeb的学习--Response

1.HttpServletResponse概述 我们在创建Servlet时会覆盖service()方法,或doGet()/doPost(),这些方法都有两个参数,一个为代表请求的request和代表响应response. service方法中的response的类型是ServletResponse,而doGet/doPost方法的response的类型是HttpServletResponse,HttpServletResponse是ServletResponse的子接口,功能和方法更加强大,今天

python学习【第十一篇】网络编程

一.socket的简介 socket(简称:套接字)进程间通信的一种方式,它与其他进程间通信的一个主要不同是:能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,如qq聊天.微信聊天等. 二.socke的基本使用 在python中使用socket模块就可以创建套接字: import socket socket.socket(AddressFamily, Type) 函数说明: Address Family:可以选择 AF_INET(用于 Interne

网络传输--TCP

TCP网络编程 一.TCP简介 二.TCP网络程序--客户端 三.TCP网络程序--服务端 四.TCP知识总结 五.文件下载案例 六.3次握手和4次挥手 回到顶部 一.TCP简介TCP 1.TCP的简介 TCP通信需要通过创建链接, 数据传送, 终止链接3个步骤 2.TCP的特点 面向连接: 建立间接, 通信, 关闭连接. 这种连接方式是一对一的, 所以不支持广播模式 可靠传输 应答机制: TCP发送的报文段必须都得到接受方的应答,才可以进行下步传输 超时重传: TCP发送报文段的时候, 会启动

案例:文件下载器

服务器 参考代码如下: from socket import * import sys def get_file_content(file_name): """获取文件的内容""" try: with open(file_name, "rb") as f: content = f.read() return content except: print("没有下载的文件:%s" % file_name) de

文件下载小案例

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取请求参数,文件名称 String filename = request.getParameter("filename"); //2.使用字节输入流加载文件 //2.1找到文件服务器路径 ServletContext sc = this.getS

HttpHandler与HttpModule及实现文件下载

HttpHandler:处理请求(Request)的信息和发送响应(Response).HttpModule:通过Http Module向Http请求输出流中写入文字,httpmodule先执行 它们两个的区别:页面处理程序在处理过程中,要经历HttpModule,HttpHandler的处理HttpModule用于页面处理前和处理后的一些事件的处理,HttpHandler进行真正的页面的处理.HttpModule会在页面处理前和后对页面进行处理,所以它不会影响真正的页面请求.通常用在给每个页面