您可以按照以下步骤来实现将HTML传来的图片保存到MySQL数据库,并在HTML前端表格中显示出来:

  1. 在MySQL数据库中创建一个表格,用于存储图片。表格至少包含两个字段:id和image_data。id为主键,image_data用于存储图片的二进制数据。

  2. 在HTML前端页面中,使用form表单上传图片,并将表单提交到后台的Java代码。

  3. 在Java代码中,使用Servlet来处理表单提交的请求。获取上传的图片数据,可以使用MultipartHttpServletRequest类来实现。将图片数据保存到一个临时文件中。

  4. 使用Java的文件输入流来读取临时文件的数据,并将二进制数据存储到数据库中的image_data字段。

  5. 在HTML前端页面中,使用Java代码从数据库中读取图片数据,并将其显示在表格中。可以使用Java的JDBC连接数据库,并执行查询语句来获取图片数据。

以下是一个示例的Java代码实现:

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Base64;

import javax.servlet.ServletException;
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;

@WebServlet("/imageUpload")
public class ImageUploadServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 获取上传的图片数据
        Part filePart = request.getPart("image");
        InputStream fileInputStream = filePart.getInputStream();

        // 将图片数据保存到临时文件
        File tempFile = File.createTempFile("temp", ".jpg");
        filePart.write(tempFile.getAbsolutePath());

        // 将图片数据存储到数据库中
        saveImageToDatabase(tempFile);

        // 删除临时文件
        tempFile.delete();

        // 重定向到HTML前端页面
        response.sendRedirect("index.html");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 从数据库中获取图片数据
        byte[] imageData = getImageDataFromDatabase();

        // 将图片数据转换为Base64编码字符串
        String base64Image = Base64.getEncoder().encodeToString(imageData);

        // 在HTML前端页面中显示图片
        response.setContentType("text/html");
        response.getWriter().print("<table><tr><td><img src='data:image/jpeg;base64," + base64Image + "'/></td></tr></table>");
    }

    private void saveImageToDatabase(File file) {
        try {
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");
            PreparedStatement statement = conn.prepareStatement("INSERT INTO images (image_data) VALUES (?)");
            FileInputStream fis = new FileInputStream(file);
            statement.setBinaryStream(1, fis);
            statement.executeUpdate();

            statement.close();
            fis.close();
            conn.close();
        } catch (SQLException | IOException e) {
            e.printStackTrace();
        }
    }

    private byte[] getImageDataFromDatabase() {
        byte[] imageData = null;

        try {
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");
            PreparedStatement statement = conn.prepareStatement("SELECT image_data FROM images");
            ResultSet resultSet = statement.executeQuery();

            if (resultSet.next()) {
                imageData = resultSet.getBytes("image_data");
            }

            resultSet.close();
            statement.close();
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return imageData;
    }
}

以上代码示例中,MySQL数据库的连接URL、用户名和密码需要根据实际情况进行修改。同时,根据您的具体需求,可能需要进一步完善代码,例如添加异常处理、图片上传的验证等

如何把html传过来的图片保存到mysql数据库里并显示在html前端表格里用java代码实现

原文地址: https://www.cveoy.top/t/topic/hPOx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录