下面是一个示例代码,演示了如何上传图片到数据库:

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

需要注意的是,上面的代码只是一个示例,可能需要根据实际情况进行修改和调整。同时,这种将图片保存到数据库的方式并不是最优的做法,因为它可能会导致数据库性能下降。一般来说,将图片保存到磁盘上,然后在数据库中保存图片的路径会更好一些。

  •