首页 >> 大全

javaweb文件上传,图片地址上传到数据库

2023-09-15 大全 37 作者:考证青年

先看效果

这里的头像就是通过查询数据库里存的图片的地址显示的

数据库中就会多出地址

提交之后,在管理员页面或者查看个人信息页面就能看到

原理:通过文件上传的方式将图片的地址上传到数据库,其他jsp页面查询数据库时通过地址直接显示图片

所需的jar包:

jsp页面(部分):

                <form action="${pageContext.request.contextPath}/addInfoma" method="post" enctype="multipart/form-data"><div class="modal-body"><ul><li style="display: none"><label><span>报修人id:span>label><input type="text" name="r_id" value="${r_id}">li><li><label><span>   : span>label><input style="display: none" type="text" name="r_name" value="${r_name}" ><input disabled="disabled" type="text" value="${r_name}">li><li><label><span>宿   : span>label><input style="display: none" type="text"name="r_address" value="${r_address}"><input disabled="disabled" type="text" value="${r_address}">li><li><label style="vertical-align: top"><span>故障描述:span>label><textarea type="text" onblur="gz()" id="f_description" name="f_description" style="resize:none;" >textarea>li><li><label><span>图片上传: span>label><input  type="file" name="img_url">li><script src="static/js/jquery-1.11.3.js">script><script>function gz(){let reg = /^[^\s]+[\s]*.*$/if(!reg.exec($("#f_description").val())){alert('请输入合法的故障描述')$("#f_description").val('');}}script>ul>div><div class="modal-footer"><button type="submit" class="btn btn-primary btn-sm">提交申请button>div>form>

注意:form表单要设置,图片上传的input的type属性为file,给这个input设置name,表单提交那里要设置=“/form-data”

代码:(上传图片的)

//设置ContentType字段值response.setContentType("text/html;charset = utf-8");// FileItem 是表单中的每一个元素的封装// 创建一个 FileItem 的工厂类FileItemFactory factory = new DiskFileItemFactory();// 创建一个文件上传处理器(装饰设计模式)ServletFileUpload upload = new ServletFileUpload(factory);// 解析请求List<FileItem> items = upload.parseRequest(request);System.out.println(items);for (FileItem item : items) {// 判断文件类型if (item.isFormField()) {// 文本类型String filename = item.getFieldName();if (filename.equals("r_id")){String id = item.getString("UTF-8");r_id=Integer.parseInt(id);System.out.println(r_id);}if (filename.equals("r_name")){r_name = item.getString("UTF-8");System.out.println(r_name);}if (filename.equals("r_address")){r_address = item.getString("UTF-8");System.out.println(r_address);} if (filename.equals("f_description")){f_description = item.getString("UTF-8");System.out.println(f_description);}
//                    if (filename.equals("user")) {
//                        name = item.getString("UTF-8");
//                        System.out.println(name);
//                    }} else {// 文件类型// 获取文件后缀名String imgtype = item.getName().substring(item.getName().lastIndexOf("."));// 给文件重新命名防止重复String imgName = UUID.randomUUID() + imgtype;System.out.println();String path="E:\\TempFolder";// 将上传的文件保存到服务器item.write(new File(path, imgName));// 把服务器中的路径添加到数据库中String sqlPath=null;sqlPath = "TempFolder/" + imgName;img_url=sqlPath;System.out.println(img_url);System.out.println("访问路径:" + sqlPath);// 将路径保存到数据库}}

需要注意的是

这里的if else语句是因为我们设置了文件上传的这个表单,无法通过.("");通过name获取到值,所以要在这里遍历比较拿到我们的值,不要忘了在外面初始化参数

记得数据库中是类型的

上传照片到数据库_上传图片地址怎么获取_

接下来在里配置一下

点他的时候下面是能看到的,还要注意上面的虚拟路径只用斜线就行了,免得图片到时候显示不出来

存数据库就是把当做普通的类型的存进去就行了,查看数据库也是,在jsp显示页面img的src写成数据库的值就行了

  <td><img class="fd" width="100px" height="100px" src="${infomation.img_url}"/>td>

附赠一个点击图片放大,再点一次缩小的js代码:

<script>$(".fd").bind("click",function(){var a=1console.log(a)var width = $(this).width();if(width==100){$(this).width(300);$(this).height(300);}else {$(this).width(100);$(this).height(100);}});script>

别忘了前面导入的包

演示一个更改头像的demo:

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了