JAVA上传文件到数据库

 前端代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>在此处插入标题</title>
</head>
<body>
   <!--enctype="multipart/form-date" 该属性用于服务文件上传-->    <form action="upload.do" method="post" enctype="multipart/form-data"> <p>Upload your song in MP3 format:</p> <input type="file" name="file" /><br /> <input type="submit" value="Upload" /> </form> </body> </html>

后台代码

package demo;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;

/**
 * Servlet implementation class UP
 */
@MultipartConfig 
@WebServlet("/upload.do")
public class UP extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * 从part对象里,解析出文件名
	 * @param part
	 * @return
	 */
	private String getFilename(Part part) {
		String header   = part.getHeader("content-disposition");
		String filename = header.substring(header.indexOf("filename="")+10,header.lastIndexOf("""));
		return filename;
	}
	
    public UP() {
    	super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Part part = request.getPart("file");//获取上传的文件对象
		saveToDb(part);//调用方法保存文件到数据库
	}

	private void saveToDb(Part part) {
		
		InputStream in =null;//初始化一个输入流对象
		String filename = getFilename(part);//调用方法获取文件名
		
		try {
			in = part.getInputStream();//获取文件输入流
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		
		String url ="jdbc:mysql://149.129.112.161:3306/shop?useUnicode=true&characterEncoding=utf-8";
		String user="shop";
		String password="999999";
		
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		
		try {
			Connection connection = DriverManager.getConnection(url,user,password);
			String sql = "insert into bigtb (name,images) values(?,?) ";
			PreparedStatement statement = connection.prepareStatement(sql);
			statement.setString(1, filename);//设置文件名
			statement.setBinaryStream(2, in);//设置输入流
			
			statement.executeUpdate();//处理sql语句
			
			statement.close();
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		
	}

}

  

原文地址:https://www.cnblogs.com/max-hou/p/10882395.html