springboot 实现图片上传功能

springboot 实现图片上传功能

   这几天在做重构学校的图书馆项目,用sprinboot重新搭建项目,原项目是使用PHP搭建的,刚开始看着挺懵的,慢慢的就看懂。这个项目中遇到的难题是照片上传功能,弄了挺久才实现出来。

   此功能没有导入如何jar包。

   这里介绍呢,我就按照项目本身的结构来实现这个功能。

   首先是数据库的数据结构,项目先是通过照片名(xxx.jpg)保存到数据库(picurl).
   故我的想法是通过新书的名字,获取到这个新书对应的照片名,进行对上传上的照片进行名字的修改。
在这里插入图片描述

1.Mapper层
	<!--上传图片-->
	<select id="changeAvatar" resultType="NewBooks">
	    select * from newbooks where title=#{title}
	</select>
2.Service层
@Override
public NewBooks changePicUrl(String title) {
   
    //根据参数调用方法
    NewBooks newBooks = newBooksMapper.changeAvatar(title);
    if (newBooks == null){
   
        throw new NewsBookNotException("书库没有该书数据,请先添加!");
    }
    return newBooks;
}
3.自定义异常
3.1service层自定义异常

   为了便于统一管理自定义异常,在service包中创一个ex包用来放自定义异常的基类异常,继承自RuntimeException类,并从父类生成子类的五个构造方法。
在这里插入图片描述创建NewsBookNotException类,当用户输入到的书名,在数据库中没有找到数据,则会出对应的信息。
在这里插入图片描述

3.2 上传文件自定义异常

处理异常

1.在处理上传文件的过程中,用户可能会选择错误的文件上传,此时就应该抛出对应的异常并进行处理。所以需要创建文件上传相关异常的基类,即在com.cy.store.controller.ex包下创建FileUploadException类,并继承自RuntimeException类。

package com.pzlib.service.ex;

/** 文件上传相关异常的基类 */
public class FileUploadException extends RuntimeException {
   
    public FileUploadException() {
   
        super();
    }

    public FileUploadException(String message) {
   
        super(message);
    }

    public FileUploadException(String message, Throwable cause) {
   
        super(message, cause);
    }

    public FileUploadException(Throwable cause) {
   
        super(cause);
    }

    protected FileUploadException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
   
        super(message, cause, enableSuppression, writableStackTrace);
    }
}

2.在处理上传的文件过程中,经分析可能会产生以下异常。这些异常类都需要继承自FileUploadException类。

// 上传的文件为空
controller.ex.FileEmptyException
// 上传的文件大小超出了限制值
controller.ex.FileSizeException
// 上传的文件类型超出了限制
controller.ex.FileTypeException
// 上传的文件状态异常
controller.ex.FileStateException
// 上传文件时读写异常
controller.ex.FileUploadIOException

3.创建FileEmptyException异常类,并继承FileUploadException类。

package com.pzlib.service.ex;

/** 上传的文件为空的异常,例如没有选择上传的文件就提交了表单,或选择的文件是0字节的空文件 */
public class FileEmptyException extends FileUploadException {
   
    // Override Methods...
}

4.创建FileSizeException异常类,并继承FileUploadException类。

package com.pzlib.service.ex;

/** 上传的文件的大小超出了限制值 */


public class FileSizeException extends FileUploadException {
   
    // Override Methods...
}

5.创建FileTypeException异常类,并继承FileUploadException类。

package com.pzlib.service.ex;
/** 上传的文件类型超出了限制 */
public class FileTypeException extends
  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值