涉及工具:IDEA、MYSQL
要求:在本地文件夹中选则图片上传并保存在数据库中。
    实现思路:通过
    
     input
    
    标签
    
     file
    
    属性进行图片上传,通过js解析图片,发送到服务器对图片进行数据库保存。
   
SQL:
-- 创建图片数据库:fileImages
CREATE DATABASE fileImages;
-- 图片表
DROP TABLE images;
CREATE TABLE images(
	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '图片编号',
	`image` LONGTEXT COMMENT '图片'
);JSP:
<%@ page contentType = "text/html;charset=UTF-8" language = "java" %>
<html>
    <head>
        <title>图片上传</title>
        <script>
            function  imageUpload(files){
                //创建文件读取对象
                const reader = new FileReader();
                //文件按照该格式进行读取(格式可按照需求写)
                reader.readAsDataURL(files[0], `utf-8`);
                // 读取完文件之后会回来这里
                reader.onload = (file) => {
                    // 读取文件内容
                    const image = file.target.result;
                    //设置图片预览
                    document.getElementById("onload_image").setAttribute("src", image);
                    //将解析图片存至隐藏文本域内
                    document.getElementById("image").innerText = image;
                }
            }
        </script>
    </head>
    <body>  
        <%--设置表单提交地址--%>
        <form action = "ImagesUploadServlet?method=imagesUpload" method="post">
            <input type = "file" onchange = "imageUpload(this.files)" id="upload_image">
            <img src = "" alt = "无法加载" id="onload_image">
            <textarea hidden name="image"id="image"></textarea>
            <input type = "submit" value="提交">
        </form>
    </body>
</html>servlet:
@WebServlet(name = "ImagesUploadServlet", value = "/ImagesUploadServlet")
public class ImagesUploadServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String method = request.getParameter("method");
        if ("imagesUpload".equals(method)){
            imagesUpload(request,response);
        }
    }
    private void imagesUpload(HttpServletRequest req, HttpServletResponse resp) {
        String image = req.getParameter("image");//拿到解析图片内容
        //之后按照数据库操作就行了
    }
} 
版权声明:本文为weixin_61880944原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
