首页 > 其他分享 >上传图片

上传图片

时间:2022-09-07 12:13:31浏览次数:65  
标签:文件 img 路径 file 上传 id 图片

上传图片的方法
在上传文件的时候需要知道其原理,因为我们的数据库是无法存储数据的,所以我们只能使用地址来找,所以数据库中应该村的是文件路径
其次上传图片是属于上传文件的一种方式,所以也要学会上传文件的方法
在之后呢也要注意上传图片和对象的关联
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/文件名去找到的对象,但是他的真实路径其实是后面的这个路径。
————————————————

原文链接:https://blog.csdn.net/qq_52880445/article/details/120835844

标签:文件,img,路径,file,上传,id,图片
From: https://www.cnblogs.com/q734495054/p/16664931.html

相关文章

  • wangEditor粘贴word图片且图片文件自动上传功能
    ​ 当前功能基于PHP,其它语言流程大抵相同。大概流程:1.将docx文件上传到服务器中2.使用PHPoffice/PHPword实现将word转换为HTML3.将HTML代码返回并赋值到编辑器中......
  • ueditor任意文件上传漏洞+图片马制作
    ueditor任意文件上传漏洞+图片马制作 ueditor漏洞代码位置:  修复漏洞的代码内容:publicoverridevoidProcess(){Sources=Request.Form.GetValu......
  • Flask 学习-55.文件上传功能开发
    前言文件上传的基本原理实际上很简单,基本上是:一个带有enctype=multipart/form-data的标记,标记中含有一个。应用通过request对象的files字典来访问文件。使......
  • umeditor粘贴word图片且图片文件自动上传功能
    ​ ueditor粘贴不能粘贴word中的图片是一个很头疼的问题,在我们的业务场景中客户要求必须使用ueditor并且支持word的图片粘贴,因为这个需求头疼了半个月,因为前端方面因为安......
  • postman传图片
    postman传图片 1.选择地址,切换POST方法(一般上传文件的接口,都会设置成POST)。 2. 设置body,选择“form-data”,并且将“key”的类型设置成“file”,具体操作可以参考下......
  • 使用canvas给图片添加滤镜
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width......
  • form表单上传文件及后端获取文件
    写在前面(强调)使用form表单上传文件时必须要干的两件事:1.form表单的method指定为post2.指定enctype="multipart/form-data"form表单上传文件<formaction=""method=......
  • 全网最简单的大文件上传与下载代码实现(React+Go)
    前言前段时间我需要实现大文件上传的需求,在网上查找了很多资料,并且也发现已经有很多优秀的博客讲了大文件上传下载这个功能。我的项目是个比较简单的项目,并没有采用特别......
  • PictureBox 从数据库加载图片照片
    PrivateSubPAPHOTO_SEL()TryDimobjConAsSqlConnectionDimobjCmdAsSqlCommand'打开数据库objCon=New......
  • PictureBox保存图片照片到数据库
    PrivateSubPAPHOTO_SAVE()TryIfTxtPictureURL.Text.ToString<>""ThenDimSQL_StringAsString=""'定义SQ......