简介:
我的实现思路是通过form表单一次性上传多个input,其中包括我要存储的文件,然后通过工具类将input区别开,分别进行处理.
该工具类可以实现单个文件的下载,文件会被下载到uploadPath字符串所对应的文件目录中.
我的前台有多个input框,其中只有一个input框的type属性为"file",其他的均为"text"类型,为了获取商铺的ID,我在前台设置了隐藏的input框,并给该框设置了value,但是这一点并不安全,因为在前台我是可以通过浏览器自带的查看元素获取value从而进行入侵.
我在后台将所有的input元件中除图片以外的所有数据直接存储在HashMap中,图片则通过工具类下载到我本地的一个文件夹中,数据库中存储图片的URL,我存储的是相对于项目的路径地址,这就导致我的项目会越存越大,存储到服务器上才是明智的做法.
以下我会贴上我的数据库截图和前端页面的部分代码:
business商家表:
store商铺表:
文件存储截图:
前端添加商品的页面addGood.jsp:(值得一提的是我顺便用JS实现了用户上传图片时可以对上传图片的预览)
<head>
<link rel="icon" href="<%=request.getContextPath()%>/resources/image/taobao.ico" type="image/x-icon"/>
<title>添加商品</title>
<script src="<%=request.getContextPath() %>/resources/js/jquery-3.3.1.min.js"></script>
</head>
<body>
<form method="post" action="<%=request.getContextPath()%>/goods/insert" enctype="multipart/form-data">
商品名称:
<input id="goodsName" type="text" name="goodsName" value="火影忍者" />
<br/>价钱:<input id="goodsPrice" type="text" name="goodsPrice" value="41"/>
<br/>商品简述<input id="goodsDec" type="text" name="goodsDec" value="这是一个火影忍者"/>
<br/>商品库存
<input id="goodsNum" type="text" name="goodsNum" value="1" />
<input type