文章目录
- 全局异常处理器
- 文件上传
- 文件下载
全局异常处理器
在程序中使用异常处理器进行全局异常捕获,此处主要处理SQLIntegrityConstraintViolationException异常,在reggie->common里面新建一个全局的异常捕获类 GlobalExceptionHandler.java,加注解@ControllerAdvice,拦截两种类
创建方法exceptionHandler,加注解@ExceptionHandler(SQLIntegrityConstraintViolationException.class)表示此方法用于处理该种异常。
文件上传
上传的 form 表单如下
服务端接收时通常会使用Apache提供的 commons-fileupload 和 commons-io 两个组件,Spring基于这两个组件做了封装,只需在Controller的方法中声明一个MultipartFile的参数即可使用。
方法实现如下
文件下载
通过浏览器进行文件下载有两种形式:下载到磁盘或通过浏览器打开。
文件上传成功之后回调handleAvatarSuccess方法,获取图片在服务器上的位置。
然后再通过img标签展示,请求拼接好的 imageUrl,访问服务器的download。
文件下载的后端代码如下
/*** 文件下载,图片回显浏览器*/@GetMapping("/download")public void download(String name, HttpServletResponse response){try {//输入流,通过输入流读取文件内容FileInputStream fileInputStream = new FileInputStream(new File(basePath+name));//输出流,通过输出流将文件写回浏览器,在浏览器展示图片ServletOutputStream outputStream = response.getOutputStream();response.setContentType("image/jpeg");//设置响应的文件类型int len = 0;byte[] bytes = new byte[1024];while ((len = fileInputStream.read(bytes)) != -1){//用while循环一直写,写到-1证明写完了outputStream.write(bytes,0,len);outputStream.flush();}//关闭资源outputStream.close();fileInputStream.close();} catch (Exception e) {e.printStackTrace();}}