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();
		}
		
	}

}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM