JSP简单文件上传至数据库(图片上传)

这篇博客介绍了如何在本地使用IDEA开发环境中,通过JSP和Servlet实现图片上传功能,并将图片数据存储到MYSQL数据库中。用户选择图片后,文件通过FileReader读取转换为DataURL,然后通过POST请求发送到服务器。在服务器端,接收到图片数据并将其保存至数据库的images表中。
摘要由CSDN通过智能技术生成

涉及工具: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");//拿到解析图片内容
        //之后按照数据库操作就行了
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值