<%
String para = request.getParameter("id");
//避免中文乱码
para = new String(para.getBytes("ISO8859-1"), "UTF-8");
//文件路径
String filePath = "D:/BackupFile/" + para + ".zip";
//文件下载后保存的名字,后缀.zip表名文件格式
String displayName = para + ".zip";
displayName = URLEncoder.encode(displayName, "UTF-8");
//设置下载文件保存名称
response.addHeader("Content-Disposition", "attachment;filename="
+ displayName);
try {
response.setHeader("Cache-Control", "no_cache");
response.setHeader("Pragma", "no_cache");
response.setHeader("Content-Transfer-Encoding", "binary");
response.setContentType("application/octet-stream");
OutputStream write = response.getOutputStream();
byte buffer[] = new byte[4096];
FileInputStream read = new FileInputStream(filePath);
int size;
while (( size = read.read(buffer) ) != -1) {
write.write(buffer, 0, size);
}
write.close();
response.flushBuffer();
} catch (Exception e) {
e.printStackTrace();
}
%>
相关推荐
在上面的代码中,我们首先使用PreparedStatement查询MYSQL数据库中的二进制文件,然后使用ResultSet获取二进制流,并将其写入文件中。 向MYSQL数据库中写入二进制文件需要将要存储的数据转换成二进制流,然后使用...
这种编码方式主要适用于编码那些无法直接通过文本格式传输的数据,比如图片、音频、视频等二进制文件。Base64编码通过把每3个字节的二进制数据转换为4个字符来实现编码过程,每个字符代表着6个比特的信息,因此编码...
总之,"Struts1上传二进制流"涉及了Struts1框架中Action类的使用,文件上传处理,以及在JSP中展示文件。通过`UserAction.java`和`uimageShow.jsp`这两个文件,我们可以实现从客户端的文件选择到服务器端的文件保存,...
第一中使用二进制流的方式,这样被文件的文件可以是随意地址,二不必使用“/”开头的路径; 第二种使用RequestDispatcher下载文件,这中下载方式的局限是被下载文件的路径必须以“/”开头,即在项目的webRoot下
PDF.js支持文件流预览,意味着我们可以从服务器获取PDF的数据流,然后逐步解析和显示内容,而不需要等待整个文件下载完成。 要使用PDF.js实现文件流预览PDF,我们需要以下几个步骤: 1. **设置项目环境**:由于...
2. **文件下载**:在JSP中,可以通过设置HTTP响应头来触发文件下载。`response.setHeader("Content-Disposition", "attachment; filename=yourfile.txt")`这行代码告诉浏览器将以附件形式下载文件,并设定文件名。...
在Java和JSP中,实现文件下载是一项常见的任务,它涉及到服务器与客户端之间的交互,以及对文件流的处理。下面将详细讲解如何使用Java和JSP来实现这一功能。 首先,我们从`downloadtool.jsp`开始,这是一个用户界面...
在这段代码中,我们设置HTTP响应的类型为`application/octet-stream`,表示这是一个二进制流,适合文件下载。`Content-Disposition`头用于设置附件的名称,使浏览器弹出保存对话框。 4. **错误处理**:在实际应用...
例如,限制文件大小以防止DoS攻击,对文件名进行清理以防止路径遍历漏洞,以及使用缓存和分块传输优化大文件下载速度。 总结一下,"jsp+js+oracle 实现文件上传数据库,下载到本地"涉及到的关键技术包括: 1. JSP...
(1)在JSP中实现文件下载最简单的方法是定义超链接指向目标资源,用户单击超链接后直接下载资源,但直接暴露资源的URL也会带来一些负面的影响,例如容易被其它网站盗链,造成本地服务器下载负载过重。 (2)另外一...
在HTTP协议中,表单数据默认是以ASCII编码的方式发送的,但文件上传需要二进制数据的传输。因此,我们需要使用多部分/形式数据(Multipart/form-data)编码,这种编码方式允许我们在表单中包含文件数据。`jsp...
1. **HTTP多部分请求**:当用户通过表单上传文件时,浏览器会发送一个包含多个部分的数据请求,每部分对应表单的一个字段,文件字段通常是二进制数据。 2. **Servlet**:JSP虽然可以直接编写Java代码,但处理复杂...
在HTTP协议中,表单数据可以通过POST请求发送到服务器,其中可以包含普通文本数据和二进制文件数据。当`enctype`属性设置为`multipart/form-data`时,表单就能上传文件。Java的Servlet API提供了一个`Part`接口来...
2. Flash组件通过AJAX或者直接POST方式,将文件数据以二进制流的形式发送到服务器。 3. JSP页面或者Servlet捕获这个请求,解析请求体中的文件数据。 4. 文件数据被保存到服务器的临时目录或指定的存储路径。 5. ...
这里的`enctype="multipart/form-data"`至关重要,因为它告诉浏览器以多部分/二进制格式发送数据,这是处理文件上传所必需的。 接下来,我们需要在JSP(这里是`upload.jsp`)中处理文件上传。在JSP中,我们通常使用...
8. **文件下载**:文件上传模块通常会包含文件下载功能。这需要生成一个URL供用户点击下载,或者通过Servlet动态生成文件内容并返回给客户端。 9. **性能优化**:处理大量文件上传时,需要考虑并发处理、异步操作等...
在这个例子中,我们设置了响应类型为`application/octet-stream`,这告诉浏览器这是一个二进制文件。`Content-Disposition`头用于指定文件名。然后,我们读取文件并将其写入响应输出流,以便浏览器可以下载。 ### ...
1. **文件上传原理**:文件上传通常涉及到将文件内容转换为二进制流,然后通过HTTP的POST请求发送到服务器。jspsmart通过解析请求体中的二进制数据,将文件保存在服务器上。 2. **Multipart解析**:jspsmart内部...
在这个例子中,我们设置了HTTP响应的类型为`application/octet-stream`,这是表示二进制流的MIME类型,适合于任意类型的文件。然后,我们使用`Content-Disposition`头来指定文件的下载名称。最后,调用`...
在Java Web开发中,JSP(JavaServer Pages)经常用于构建动态网页,其中包括处理文件下载的需求。然而,当涉及到中文文件名时,可能会遇到乱码问题。本文将深入解析如何在JSP中实现文件下载,并解决中文文件名乱码的...