下面是一个示例代码,演示了如何上传图片到数据库:
HTML表单:
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
Servlet代码:
@WebServlet("/upload")
public class UploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取上传的文件
Part filePart = request.getPart("file")
InputStream fileContent = filePart.getInputStream()
byte[] fileBytes = fileContent.readAllBytes()
// 获取其他表单数据
String name = request.getParameter("name")
String type = request.getParameter("type")
// 保存文件到数据库
Connection conn = null
PreparedStatement ps = null
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password")
String sql = "INSERT INTO image (name, type, content) VALUES (?, ?, ?)"
ps = conn.prepareStatement(sql)
ps.setString(1, name)
ps.setString(2, type)
ps.setBytes(3, fileBytes)
ps.executeUpdate()
} catch (SQLException e) {
e.printStackTrace()
} finally {
if (ps != null) {
try {
ps.close()
} catch (SQLException e) {
e.printStackTrace()
if (conn != null) {
try {
conn.close()
} catch (SQLException e) {
e.printStackTrace()
需要注意的是,上面的代码只是一个示例,可能需要根据实际情况进行修改和调整。同时,这种将图片保存到数据库的方式并不是最优的做法,因为它可能会导致数据库性能下降。一般来说,将图片保存到磁盘上,然后在数据库中保存图片的路径会更好一些。