前端代碼
<!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();
}
}
}
