======================================================================
JSP
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
</head>
<body>
文件下载
<a href="UpLoad">下载链接</a>
<a href="FileDb?id=1">数据库中下载文件</a>
</body>
</html>
======================================================================
servlet
package com.upload.db;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import po.UploadBean;
public class FileDb extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//取出前台的参数名
String id = request.getParameter("id");
//判断文件是否存在
if(id == null){
PrintWriter out = response.getWriter();
out.print("没有找到文件");
}
UpLoadDB uploaddb = new UpLoadDB();
Connection con = uploaddb.getConnection();//打开数据库的连接
//通过id的值把数据库中的字段的文件路径查出来
String sql = "select filename from file where id = '"+id+"'";
UploadBean upBean = new UploadBean();
try {
ResultSet rs = con.createStatement().executeQuery(sql);
while(rs.next()){
//将将结果集的对应数据放到相对的Bean里
upBean.setFileName(rs.getString(1));
}
} catch (SQLException e) {
e.printStackTrace();
}
//对文件名进行中文的处理
String fileName = new String(upBean.getFileName().getBytes(),"gb2312").toString();
//取出文件名
String newFileName = (fileName.substring(fileName.lastIndexOf("\\"),fileName.lastIndexOf(".")));
int length = newFileName.length();
String tempName = newFileName.substring(1,length);
InputStream is = new FileInputStream(fileName);
response.reset();
response.addHeader("Content-Disposition","attachment; filename=\"" + newFileName + "\"");
byte[] temp = new byte[1000];
int len = 0;
//得到流
ServletOutputStream sos = response.getOutputStream();
String validate = fileName.substring(fileName.lastIndexOf("."));
System.out.println(validate);
//判断文件的相应类型
if(validate.equals(".txt")){
response.setContentType("text/plain");
}else if(validate.equals(".dot")){
response.setContentType("application/msword");
}else{
response.setContentType("image/jpeg;charset=GB2312");
}
while((len = is.read(temp))!=-1){
sos.write(temp, 0, len);
}
sos.flush();
sos.close();
is.close();
}
}
======================================================================
数据库的连接
package com.upload.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class UpLoadDB {
public static Connection conn = null;
public Connection getConnection(){
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/upload?useUnicode=true&characterEncoding=gb2312",
"root", "root");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public void closeConnection(){
}
}
分享到:
相关推荐
C#将文件保存到数据库中或者从数据库中读取文件 本文主要介绍了使用 C# 将文件保存到数据库中或者从数据库中读取文件的方法。下面将详细介绍该知识点。 一、保存文件到数据库中 在实际开发中,我们经常需要将文件...
c#从数据库中读取文件并打包成xml,代码,简单易懂
### C# 中将文件保存至数据库或从数据库读取文件:深入解析与实践 #### 一、背景介绍 在软件开发领域,特别是Web应用开发中,处理文件上传和下载是常见的需求之一。对于某些场景,如用户头像、文档、图片等小型...
2. **从数据库读取图像:** - 同样使用Connection对象建立数据库连接。 - 创建Recordset对象,执行一个SELECT查询,选取包含图像数据的记录。 - 当Recordset打开后,找到对应图像数据的字段,将其转换为Stream...
这里我们使用`SqlDataReader`读取数据库中的二进制数据,然后将其写入到一个新的文件中,完成从数据库中恢复文件的过程。 总结,C#提供了强大的工具来处理文件和数据库之间的交互。通过将文件转换为二进制数据,...
在VC6.0中读取数据库中的图像文件,首先需要创建一个数据库连接。可以使用ADO(ActiveX Data Objects)库,它提供了对数据库的接口。通过建立Connection对象,设置正确的连接字符串(例如:"Provider=Microsoft.Jet....
3. **从数据库读取文件**:要从数据库中读取文件并将其显示给用户,可以采用类似的方法。首先打开数据库连接,执行查询语句获取文件数据,然后使用`FileStream`类将数据写入新的文件或直接发送到客户端浏览器。 ###...
当我们谈论“从数据库读取图片文件”时,通常涉及的是将图片作为BLOB(Binary Large Object)类型存储在数据库中,然后通过应用程序或API从数据库检索并显示这些图片。这一过程涉及到多个关键知识点,让我们逐一深入...
总的来说,Android软件开发中的第三方数据库集成提供了更高效和灵活的数据管理方式,而读取文件中的数据库则是处理非标准数据源或迁移旧数据的有效手段。通过学习和实践这些技术,开发者可以更好地构建高性能、易于...
4. **资源管理**:在读写文件和数据库操作中,正确关闭`FileStream`、`BinaryReader`、`SqlDataReader`和`SqlConnection`等对象是必要的,以释放系统资源。 综上所述,图片存入数据库和从数据库中读取图片的过程,...
2. 从数据库读取文件:使用ReadFileFromDB方法,指定数据库记录的ID和文件保存路径,控件会自动从数据库中读取对应文件数据并写入到指定位置,生成原始文件。 四、应用场景 1. 图片库管理:在图像处理应用中,可以...
这个实例“实例93-在数据库中读写图像文件”聚焦于如何在数据库中管理和操作图像数据,这在很多应用场景中非常常见,比如社交媒体平台、电子商务网站、医疗系统等。下面我们将深入探讨这一主题。 首先,我们来理解...
5. 从数据库读取图像数据: 当需要从数据库中读取图像时,执行一个SELECT SQL查询,获取ImageData字段。使用`CRecordset`对象处理查询结果: ```cpp CRecordset rs(&m_connection); rs.Open(CRecordset::forward...
在本文中,我们将深入探讨如何使用PHP从数据库中提取文件,特别是当数据库是Microsoft Access,而开发环境是WampServer时。WampServer是一个流行的...这个例子适用于那些需要从非标准数据库中读取和下载文件的Web应用。
本篇文章将深入探讨如何在易语言中进行数据库中的图片文件全面操作,包括读取、存储和管理图片文件。 首先,我们要理解易语言的基本结构。易语言采用"易懂"的语句设计,使得编程更加直观。在处理数据库时,易语言...
在本场景中,我们关注的是如何使用C#操作Microsoft Access数据库(通常以.MDB文件格式存储)。Access数据库是一个关系型数据库管理系统,适用于小型到中型企业,提供了数据存储和管理的能力。下面将详细阐述如何使用...
通过以上步骤,我们可以构建一个简单的Java程序,实现从数据库读取表数据并转换为SQL文件的功能。不过,实际项目中可能需要考虑更多因素,如性能优化、事务处理、错误重试等。请确保在操作数据库时遵守最佳实践,以...
- **创建数据表**:在数据库中创建用于存储文件信息(如文件名、路径、内容等)的数据表。 #### 2.2 实现步骤 ##### 2.2.1 打开文件对话框 ```pascal OpenDialog1.Filter := 'Word 文件 (*.doc)|*.doc'; // 设置...