上传图片的方法

  • 在上传文件的时候需要知道其原理,因为我们的数据库是无法存储数据的,所以我们只能使用地址来找,所以数据库中应该村的是文件路径
  • 其次上传图片是属于上传文件的一种方式,所以也要学会上传文件的方法
  • 在之后呢也要注意上传图片和对象的关联

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/文件名去找到的对象,但是他的真实路径其实是后面的这个路径。

上传图片的方法(大白话讲解)相关推荐

  1. 大白话讲解MobileNet-v3

    大白话讲解MobileNet-v3 MobileNet-v3可以说是轻量化网络的集大成者,所以在介绍MobileNet-v3之前我们有必要了解一下目前的一些轻量化网络及特点. 1.轻量化网络 在移动端 ...

  2. 大白话讲解卷积神经网络工作原理

    本文介绍了计算机视觉常用工具:卷积神经网络.用大白话讲解了其应用领域.卷积.池化(下采样).全连接.梯度下降.反向传播算法.并用三维可视化工具展示了手写字体识别的卷积神经网络案例,最后介绍了几个经典的 ...

  3. Zookeeper详细介绍+dubbo简单介绍+简单大白话讲解

    Zookeeper zookeeper前言 zookeeper简介绍 dubbo中为何使用zookeeper(如果理解dubbo实现原理可以忽略) dubho好处简单介绍下 dubbo如何使用zook ...

  4. python中的object是什么意思_Python object类中的特殊方法代码讲解

    python版本:3.8class object: """ The most base type """ # del obj.xxx或del ...

  5. think php a方法,PHP_ThinkPHP之A方法实例讲解,ThinkPHP的A方法用于在内部实例 - phpStudy...

    ThinkPHP之A方法实例讲解 ThinkPHP的A方法用于在内部实例化控制器,其调用格式为: A('[项目://][分组/]模块','控制器层名称') 最简单的用法: $User = A('Use ...

  6. mysql json 引号 双引号_关于JSON字符串key缺少双引号的解决方法 的讲解

    JSON字符串key缺少引号的解决方法 JSON字符串是key:value形式的字符串,正常key是由双引号括起来的. 例如:<?php $data = array('name'=>'fd ...

  7. 计算机模拟培训,材料的计算机模拟方法培训讲解.ppt

    材料的计算机模拟方法培训讲解.ppt 研究背景: 感度 分子结构 晶体结构 晶格聚集态 缺陷 空穴 起爆机理 起爆过程 效率设计 HMX 研究背景: Bowden [1]和Kanllet [2]等人很 ...

  8. php form 上传_php+html5使用FormData对象提交表单及上传图片的方法

    本文实例讲述了php+html5使用FormData对象提交表单及上传图片的方法.分享给大家供大家参考.具体分析如下: FormData 对象,可以把form中所有表单元素的name与value组成一 ...

  9. php页面运用文本编辑器的实例,TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析...

    本文实例讲述了TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法.分享给大家供大家参考,具体如下: 最近项目里要添加编辑器,以为CKeditor比较出名,所以研究了一下... 1.下载 ...

  10. php解密方法,六种php加密解密方法实例讲解

    代码演示如下: 方法一 function encryptDecrypt($key, $string, $decrypt){ if($decrypt){ $decrypted = rtrim(mcryp ...

最新文章

  1. [SQL基础教程] 1-5 表的删除和更新
  2. 更新elementui图标不显示_超简单elementui主题及变量修改方案
  3. 『互联网架构』软件架构-spring源码之spring结构概述
  4. INVALID_HANDLE_VALUE的意思和用法
  5. python编写递归函数、求斐波那契数列第n项_Python非递归算法求解Fibonacci斐波那契数列...
  6. Spring Cache抽象-缓存注解
  7. CoreJava Reading Note(3:Fundamental structure)
  8. 某生鲜平台面试题:如何保证库存在高并发的场景下是安全的?
  9. Python-pyautogui qq自动发送消息,微信自动发送消息,适用于任何聊天窗口
  10. 2021年美赛M奖,圆我两年建模梦
  11. 第四章软件项目进度管理
  12. 7-9 龟兔赛跑 (20分)
  13. (二)Semi-supervised(半监督学习)李宏毅
  14. 阿里实习生电话面试果断被鄙视
  15. 报错:SyntaxError: Unexpected token u in JSON at position 0 at JSON.parse (<anonymous>)
  16. 什么是程序员的核心竞争力?
  17. 河南省中专高考计算机大专分数线,河南省中专分数线一般多少分
  18. 基于动力学模型的无人驾驶车辆MPC轨迹跟踪算法及carsim+matlab联合仿真学习笔记
  19. Gstreamer1.0与imx6q IPU转码 wait_for_comp_timeout 问题解决心路历程
  20. php怎么用xampp打开,xampp教程(一):xampp下载,安装,配置,运行PHP的web项目

热门文章

  1. 证书与签名(二):数字签名流程与签名认证流程
  2. HDU 4699(栈)
  3. 生活中的一些哲理名言
  4. android 转盘菜单,Android实现可点击的幸运大转盘
  5. cadence 17.2 入门学习2 allegro
  6. @Aspect不生效
  7. 如何将手机里的PDF文件转换成Word文档
  8. 小程序 WeUI导入时导入失败,出现Component is not found in path 的错误
  9. 请没有买房和买车的朋友一定认真的看一下
  10. lpad()函数oracle,oracle 中lpad的用法