返回顶部
首页 > 资讯 > 精选 >SpringBoot如何上传图片到指定位置并返回URL
  • 564
分享到

SpringBoot如何上传图片到指定位置并返回URL

2023-06-29 14:06:24 564人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关SpringBoot如何上传图片到指定位置并返回URL,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。需求前端的图片上传到服务器指定的文件目录,并且将URL返回给前端前端部分(E

这篇文章将为大家详细讲解有关SpringBoot如何上传图片到指定位置并返回URL,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

需求

前端的图片上传到服务器指定的文件目录,并且将URL返回给前端

前端部分(ElementUI+vue.js

ElementUI的导入和使用:(组件 | Element)

Vue.js的导入和使用:(Vue.js (vuejs.org))

<template>  <div class="fORM-group">    <el-upload        action="Http://localhost:8081/upload"        :on-preview="handlePreview"        accept='.jpg'        :limit="10"    >        <el-button size="small" type="primary">点击上传</el-button>        <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>    </el-upload>  </div></template><script>export default {    name: "updateImg",    methods:{        handlePreview(file){            window.open(file.response.url);            console.log(file.response.url);        }    }}</script><style scoped></style>

效果:

SpringBoot如何上传图片到指定位置并返回URL

后端部分(springBoot)

1.先配置application.yml文件

file-save-path:要保存图片的位置 早上遇到404问题是因为 在 配置file-save-path时候 没有在最后的 images后加上 &lsquo;\&rsquo; 导致路径无法匹配到

server:  port: 8081  file-save-path: D:\SoftWare\SpringToolSuite\WorkPlace\HelloWorld\src\main\resources\static\images\spring:  mvc:    view:      prefix: /      suffix: .jsp

2.映射资源-重写WEBMvcConfigurer接口,实现对资源的映射

package com.etc.config;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.ResourceHandlerReGIStry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configurationpublic class WebConfig implements WebMvcConfigurer{@Value("${file-save-path}")private String fileSavePath;@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/images/**").addResourceLocations("file:"+fileSavePath);//System.out.println("file:"+fileSavePath);}}

addResourceHandler("/images/**")表示凡事以 /images/ 路径发起请求的,按照 addResourceLocations("file:"+fileSavePath)的路径进行映射

例如有一个url:http://localhost:8081/images/Hello.jpg

表示要对Hello.jpg进行请求访问,这时候服务器会把这个请求的资源映射到我们配置的路径之下 也就是会到 fileSavePath 下去寻找 是否有 Hello.jpg 这个资源,返回给前端页面。

3.Controller代码

这边为了方便使用Map进行返回,实际开发中使用封装好的类型进行返回

package com.etc.controller;import java.io.File;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.Map;import java.util.UUID;import javax.servlet.http.httpservletRequest;import javax.sound.midi.SysexMessage;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.CrossOrigin;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.multipart.MultipartFile;@CrossOrigin@RestControllerpublic class ImgUploadController {SimpleDateFormat sdf = new SimpleDateFormat("/yyyy.MM.dd/");@Value("${file-save-path}")private String fileSavePath;@PostMapping("/upload")public Map<String, Object> fileupload(MultipartFile file,HttpServletRequest req){Map<String,Object> result = new HashMap<>();//获取文件的名字String originName = file.getOriginalFilename();System.out.println("originName:"+originName);//判断文件类型if(!originName.endsWith(".jpg")) {result.put("status","error");result.put("msg", "文件类型不对");return result;}//给上传的文件新建目录String format = sdf.format(new Date());String realPath = fileSavePath + format;System.out.println("realPath:"+realPath);//若目录不存在则创建目录File folder = new File(realPath);if(! folder.exists()) {folder.mkdirs();}//给上传文件取新的名字,避免重名String newName = UUID.randomUUID().toString() + ".jpg";try {//生成文件,folder为文件目录,newName为文件名file.transferTo(new File(folder,newName));//生成返回给前端的urlString url = req.getScheme() + "://" + req.getServerName() + ":" + req.getServerPort() +"/images"+ format + newName;System.out.println("url:"+url);//返回URLresult.put("status", "success");result.put("url", url); }catch (IOException e) {// TODO Auto-generated catch block result.put("status", "error"); result.put("msg",e.getMessage());}return result;}}

关于“SpringBoot如何上传图片到指定位置并返回URL”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: SpringBoot如何上传图片到指定位置并返回URL

本文链接: https://lsjlt.com/news/325201.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SpringBoot如何上传图片到指定位置并返回URL
    这篇文章将为大家详细讲解有关SpringBoot如何上传图片到指定位置并返回URL,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。需求前端的图片上传到服务器指定的文件目录,并且将URL返回给前端前端部分(E...
    99+
    2023-06-29
  • SpringBoot上传图片到指定位置并返回URL的实现
    目录需求前端部分(ElementUI+Vue.js)后端部分(SpringBoot)1.先配置application.yml文件2.映射资源-重写WebMvcConfigurer接口...
    99+
    2024-04-02
  • layui如何上传图片并返回图片地址
    这篇文章给大家分享的是有关layui如何上传图片并返回图片地址的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。默认是file参数名返回一个Map前端接收即可。感谢各位的阅读!关于“...
    99+
    2024-04-02
  • ajax如何上传图片到PHP并压缩图片显示
    本篇内容主要讲解“ajax如何上传图片到PHP并压缩图片显示”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ajax如何上传图片到PHP并压缩图片显示”吧!HTML代码<div i...
    99+
    2023-06-08
  • php如何上传图片并保存到数据库
    要上传图片并保存到数据库,需要先创建一个表来存储图片的相关信息,包括图片的文件名、文件类型、文件大小等。然后使用PHP的文件上传功能...
    99+
    2023-10-11
    php
  • vue如何实现返回上一页面时回到原先滚动的位置
    这篇文章主要为大家展示了“vue如何实现返回上一页面时回到原先滚动的位置”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何实现返回上一页面时回到原先滚动的...
    99+
    2024-04-02
  • Win8.1系统如何从电脑上任何位置快速返回到桌面
    win8.1系统桌面已经可以设置为登陆后直接进入,但有的人喜欢开机进入开始屏幕,而且我们也经常在开启各种程序后需要回到桌面,那么Win8.1系统如何从电脑任何位置直接返回到桌面,下面小编分享Win8.1系统...
    99+
    2022-06-04
    桌面 位置 快速
  • 基于Springboot+vue如何实现图片上传至数据库并显示
    这篇文章主要讲解了“基于Springboot+vue如何实现图片上传至数据库并显示”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于Springboot+vue如何实现图片上传至数据库并显示...
    99+
    2023-07-06
  • webpack如何打包并将文件加载到指定的位置
    这篇文章主要介绍了webpack如何打包并将文件加载到指定的位置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用webpack打包,最爽的...
    99+
    2024-04-02
  • PHP把指向当前元素的指针移动到上一个元素位置,并返回当前元素的值
    这篇文章将为大家详细讲解有关PHP把指向当前元素的指针移动到上一个元素位置,并返回当前元素的值,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP 指针移动到上一个元素 PHP 中使用指针遍历数组或对象时...
    99+
    2024-04-02
  • 如何使用批处理实现全盘搜索指定文件并拷贝到指定位置
    小编给大家分享一下如何使用批处理实现全盘搜索指定文件并拷贝到指定位置,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!代码如下:@echo off&setlocal enabledelayedexp...
    99+
    2023-06-08
  • 如何使用html5定位获取当前位置并在百度地图上显示
    这篇文章将为大家详细讲解有关如何使用html5定位获取当前位置并在百度地图上显示,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 代码如下: navigator.geo...
    99+
    2024-04-02
  • css sprites如何将多个背景集成到一个png图片上css定位
    这篇文章主要讲解了“css sprites如何将多个背景集成到一个png图片上css定位”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css sprites如何将多个背景集成到一个png图片...
    99+
    2023-06-08
  • 如何设置Android studio 3.0显示光标返回上一次浏览位置的箭头图标
    这几天刚升级了Android studio 3.0,发现光标返回上一次浏览位置的箭头图标没有了。快捷键 ctrl+alt+左右键,按着真不方便。方便按的按键早已经被占满了,也懒得去改动快捷键了。来,把小箭头找回来。原来Android stu...
    99+
    2023-05-30
    android studio 光标
  • vue中如何使用axios post上传头像/图片并实时显示到页面
    这篇文章给大家分享的是有关vue中如何使用axios post上传头像/图片并实时显示到页面的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。html代码: <div...
    99+
    2024-04-02
  • Python如何实现复制图片到指定文件夹并按顺序重新命名
    这篇文章主要介绍“Python如何实现复制图片到指定文件夹并按顺序重新命名”,在日常操作中,相信很多人在Python如何实现复制图片到指定文件夹并按顺序重新命名问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”P...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作