SpringBoot+Vue+token实现(表单+图片)上传、图片地址保存到数据库。上传图片保存位置自己定义、图片可以在前端回显(一))

一般来说新增一个商品、商品的属性一般都包含图片信息。如何将图片和商品的其它属性一起传给后端?是优先处理图片信息?还是图片和其它属性数据一块提交给后端处理?带有图片资源的请求头如何设置?数据库中是存放图片还是存放图片的访问地址?如何做图片地址的资源映射?是在yml文件中进行资源映射?还是用java类编写?存放的图片名称是否需要处理?是调用工具类、还是手动处理?如何设置图片在本地磁盘的存放位置?如何将图片存放到项目中的静态资源下?如果使用了token验证、图片资源是否被拦截?是否需要配置过滤器来进行过滤?存放到数据库的图片地址,在浏览器中访问不到,该怎么办?如果图片的访问路径中包含中文导致资源访问不到又该怎么办?前端如何回显存放的图片?如何点击莫一个商品的预览按钮、显示对应商品的图片?如何将图片放入dialog弹出框中?dialog弹出框加载图片的问题?如何在vue中使用jQuery?

以上是我遇到的,我也不知道咋会遇到这样多的问题

前言: 实现的效果演示

新增商品图片以及图片预览

1、大致思路

以下是基于先处理图片、后端返回图片地址进行的

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
图片存储到数据库并不是一个好的做法,因为数据库存储的是结构化数据,而图片是二进制数据,会占用大量的数据库存储空间,降低数据库的性能。更好的做法是将图片存储到文件系统或者对象存储中,然后在数据库中存储图片的路径或者文件名。 下面是一个简单的上传图片并将图片路径存储到数据库的示例: 1.前端页面使用Vue上传图片 ```html <template> <div> <input type="file" @change="handleFileChange"> <button @click="uploadImage">上传图片</button> </div> </template> <script> export default { data() { return { file: null } }, methods: { handleFileChange(e) { this.file = e.target.files[0]; }, uploadImage() { let formData = new FormData(); formData.append('file', this.file); axios.post('http://localhost:8080/upload', formData) .then(response => { // 上传成功后,将图片路径存储到数据库 let imagePath = response.data.imagePath; // ... }) .catch(error => { console.log(error); }); } } } </script> ``` 2.后端使用Spring Boot接收并处理上传图片 ```java @RestController public class UploadController { @Autowired private ImageService imageService; @PostMapping("/upload") public ResponseEntity<?> uploadFile(@RequestParam("file") MultipartFile file) { try { // 保存图片到文件系统或者对象存储 String imagePath = imageService.saveImage(file); // 将图片路径存储到数据库 // ... return ResponseEntity.ok().body(new UploadResponse(imagePath)); } catch (Exception e) { e.printStackTrace(); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); } } } public class UploadResponse { private String imagePath; // getter and setter } @Service public class ImageService { public String saveImage(MultipartFile file) throws IOException { // 保存图片到文件系统或者对象存储 // ... return imagePath; } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Aholic

整理不易、多谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值