======================================================================
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#从数据库中读取文件并打包成xml,代码,简单易懂
C#基础操作之读取文件到数据库,值得下载和练习
VC在数据库中读写图像文件,可运行,讲述从数据库中怎么读取图像文件,感兴趣的朋友可以下载
雨松MOMO软件开发系列博文Android软件开发之制作第三方数据库与读取文件中数据库详解(三十四) 欢迎大家下载阅读,哇咔咔。
从数据库读取图片文件
读写数据库中的图像文件,VC6.0+ACCESS,可以通过修改数据连接方式,与其它数据库连接
C#操作ACCESS数据库,MDB文件读写
VC6.0在数据库中读写图像文件
WINCC中使用VBS脚本读写SQLServer数据库文件WINCC中使用VBS脚本读写SQLServer数据库文件WINCC中使用VBS脚本读写SQLServer数据库文件WINCC中使用VBS脚本读写SQLServer数据库文件
在数据库中读写图像文件
用C++编写的图书管理系统,没有使用数据库,用文件读写方式保存用C++编写的图书管理系统,没有使用数据库,用文件读写方式保存用C++编写的图书管理系统,没有使用数据库,用文件读写方式保存用C++编写的图书管理系统...
shp文件:地理信息系统,也被称作GIS,它主要的扩展类型是SHAPEFILE (.SHP),一个包含了矢量地理空间数据的流行文件格式,描述了几何形态,点,线和多边形...该方法通过java代码实现将shp文件的数据读取以及存入数据库
主要给大家介绍了Spring Batch读取txt文件并写入数据库的方法,SpringBatch 是一个...这里我们用它来实现文件的读取并将读取的结果作处理,处理之后再写入数据库中的功能。需要的朋友可以参考借鉴,下面来一起看看吧。
C#将文件读到数据&从数据库中读出文件 把文件变成二进制存到数据中 从数据库中将二进制形式转换成文件
基于WampServer、Microsoft Access 利用PHP提取数据库中的文件的例子
在测试的时候,需要造模拟数据,或者是将生产环境的数据导出到测试环境中去,本文记录通过python读取txt文件,并将数据导入mysql数据库 1、示例代码: import pymysql # 打开数据库连接 conn = pymysql.connect(host...
程序开始运行读取配置文件,用的是jdbc链接数据库,写了几个类,用程序读取数据库中表的名字,把表里面的内容读取出来转为sql文件,仅供学习参考,禁止上传给他人
读取数据库备份文件,支持单个文件,文件夹,小工具程序