上传图片的方法(大白话讲解)
上传图片的方法
- 在上传文件的时候需要知道其原理,因为我们的数据库是无法存储数据的,所以我们只能使用地址来找,所以数据库中应该村的是文件路径
- 其次上传图片是属于上传文件的一种方式,所以也要学会上传文件的方法
- 在之后呢也要注意上传图片和对象的关联
1,上传文件
@PostMapping("/file/{id}")public String fileUpload(@RequestParam(value = "file") MultipartFile file,@PathVariable("id")Integer id) {//首先判断输入的文件是否为空,如果是空就返回file页面if (file.isEmpty()) {System.out.println("文件为空空");return "file";}String fileName = file.getOriginalFilename(); // 文件名String filePath = "E:\\作业\\book\\src\\main\\resources\\static\\img\\"; // 上传后的路径File dest = new File(filePath + fileName);if (!dest.getParentFile().exists()) {dest.getParentFile().mkdirs();}try {file.transferTo(dest);} catch (IOException e) {e.printStackTrace();}Book book1 = bookDao.zym_1913040747_queryBookById(id);book1.setZym_1913040747_bookPath("img/" + fileName);System.out.println(book1.getZym_1913040747_bookPath());return "redirect:/books";}
上传文件的步骤
- 第一步就是传入参数MultipartFile类型,表示是一个文件,以及id值,对应的去找对应的对象。
- 判断传入的文件是不是空的,如果是空的就继续跳转到这个页面
- 之后查出文件的名字和上传的路径
- getParentFile()方法是返回了一个指向了 包含该文件的文件夹的对象,exists()是判断是否存在的,所以要先去判断是否有这个对象的文件夹存在,如果有的话就可以直接使用,没有就去创建
- 有了文件之后那就是要文件上传了,使用transferTo(dest)方法将上传文件写到服务器上指定的文件;
这里呢文件上传就已经完成了
开始解决第二个问题,就是如何讲图片和对象相互关联呢?这里呢我以我的一个练手项目举例(注意我没有用数据库,是用map集合存的数据)
前端在插入文件的时候可以获取到这个书的id值,传给后端(这里会报红但是并不影响我们正常使用)
<form th:action="@{/file/}+${book.getZym_1913040747_bookId}" method="post" enctype="multipart/form-data"><label>上传图片</label><input type="file" name="file"><input type="submit" name="上传"> </form>
然后后台通过RESTFUl风格获取到到id,然后通过id再去找这个书的对象,然后通过set对象获取到这个对象.图片路径的属性
Book book1 = bookDao.zym_1913040747_queryBookById(id); book1.setZym_1913040747_bookPath("img/" + fileName);//这里的话加img属性的话就可以直接直接通过相对路径去找到
开始最重要的一步,资源路径映射(在这里踩坑了)
要在自己配置的congfig的配置类中加上一个资源路径的映射,否则无法找到这个资源
//访问映射路径, @Override public void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("img/**").addResourceLocations("file:E:\\作业\\book\\src\\main\\resources\\static\\img\\"); }
它这个其实很简短,就是我们通过img/文件名去找到的对象,但是他的真实路径其实是后面的这个路径。
上传图片的方法(大白话讲解)相关推荐
- 大白话讲解MobileNet-v3
大白话讲解MobileNet-v3 MobileNet-v3可以说是轻量化网络的集大成者,所以在介绍MobileNet-v3之前我们有必要了解一下目前的一些轻量化网络及特点. 1.轻量化网络 在移动端 ...
- 大白话讲解卷积神经网络工作原理
本文介绍了计算机视觉常用工具:卷积神经网络.用大白话讲解了其应用领域.卷积.池化(下采样).全连接.梯度下降.反向传播算法.并用三维可视化工具展示了手写字体识别的卷积神经网络案例,最后介绍了几个经典的 ...
- Zookeeper详细介绍+dubbo简单介绍+简单大白话讲解
Zookeeper zookeeper前言 zookeeper简介绍 dubbo中为何使用zookeeper(如果理解dubbo实现原理可以忽略) dubho好处简单介绍下 dubbo如何使用zook ...
- python中的object是什么意思_Python object类中的特殊方法代码讲解
python版本:3.8class object: """ The most base type """ # del obj.xxx或del ...
- think php a方法,PHP_ThinkPHP之A方法实例讲解,ThinkPHP的A方法用于在内部实例 - phpStudy...
ThinkPHP之A方法实例讲解 ThinkPHP的A方法用于在内部实例化控制器,其调用格式为: A('[项目://][分组/]模块','控制器层名称') 最简单的用法: $User = A('Use ...
- mysql json 引号 双引号_关于JSON字符串key缺少双引号的解决方法 的讲解
JSON字符串key缺少引号的解决方法 JSON字符串是key:value形式的字符串,正常key是由双引号括起来的. 例如:<?php $data = array('name'=>'fd ...
- 计算机模拟培训,材料的计算机模拟方法培训讲解.ppt
材料的计算机模拟方法培训讲解.ppt 研究背景: 感度 分子结构 晶体结构 晶格聚集态 缺陷 空穴 起爆机理 起爆过程 效率设计 HMX 研究背景: Bowden [1]和Kanllet [2]等人很 ...
- php form 上传_php+html5使用FormData对象提交表单及上传图片的方法
本文实例讲述了php+html5使用FormData对象提交表单及上传图片的方法.分享给大家供大家参考.具体分析如下: FormData 对象,可以把form中所有表单元素的name与value组成一 ...
- php页面运用文本编辑器的实例,TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析...
本文实例讲述了TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法.分享给大家供大家参考,具体如下: 最近项目里要添加编辑器,以为CKeditor比较出名,所以研究了一下... 1.下载 ...
- php解密方法,六种php加密解密方法实例讲解
代码演示如下: 方法一 function encryptDecrypt($key, $string, $decrypt){ if($decrypt){ $decrypted = rtrim(mcryp ...
最新文章
- [SQL基础教程] 1-5 表的删除和更新
- 更新elementui图标不显示_超简单elementui主题及变量修改方案
- 『互联网架构』软件架构-spring源码之spring结构概述
- INVALID_HANDLE_VALUE的意思和用法
- python编写递归函数、求斐波那契数列第n项_Python非递归算法求解Fibonacci斐波那契数列...
- Spring Cache抽象-缓存注解
- CoreJava Reading Note(3:Fundamental structure)
- 某生鲜平台面试题:如何保证库存在高并发的场景下是安全的?
- Python-pyautogui qq自动发送消息,微信自动发送消息,适用于任何聊天窗口
- 2021年美赛M奖,圆我两年建模梦
- 第四章软件项目进度管理
- 7-9 龟兔赛跑 (20分)
- (二)Semi-supervised(半监督学习)李宏毅
- 阿里实习生电话面试果断被鄙视
- 报错:SyntaxError: Unexpected token u in JSON at position 0 at JSON.parse (<anonymous>)
- 什么是程序员的核心竞争力?
- 河南省中专高考计算机大专分数线,河南省中专分数线一般多少分
- 基于动力学模型的无人驾驶车辆MPC轨迹跟踪算法及carsim+matlab联合仿真学习笔记
- Gstreamer1.0与imx6q IPU转码 wait_for_comp_timeout 问题解决心路历程
- php怎么用xampp打开,xampp教程(一):xampp下载,安装,配置,运行PHP的web项目