springboot文件上传下载所有类型文件,前端使用vue+element,代码在另外一篇博客。_springboot+vue+elem实现文件上传下载

本文详细介绍了如何使用SpringBoot后端配合Vue前端实现文件上传和下载功能,包括多文件上传、单文件上传、文档上传等,涉及文件路径处理、HTTP响应设置等关键步骤。
摘要由CSDN通过智能技术生成

import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**

  • @Created Lv hs

  • @Date 18-4-4 下午5:20

  • @Description: 图片上传工具类
    */
    public class UploadUtils {

    public static final String UPLOAD_FILE_PATH = “F:\tupianshangchuan”;

    /**

    • 多图上传 返回Json格式

    • @param request

    • @param targetDir 文件上传目标路径

    • @param imgDir 图片上传路径

    • @param param 需要获取的前台传来的参数

    • @return
      */
      public static ResponseData uploadImages(HttpServletRequest request, String targetDir, String imgDir, String param) {
      try {
      if(targetDir==null||targetDir.equals(“”)){
      targetDir=UPLOAD_FILE_PATH;
      }
      Map<String,Object> maps= new HashMap<>();
      String imageUrl = “”;
      if (ServletFileUpload.isMultipartContent(request)) {
      MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
      Map abc=multipartRequest.getParameterMap();
      if(param!=null&&!param.equals(“”)){
      String[] params = multipartRequest.getParameterMap().get(param);
      if (params != null && params.length > 0) {
      param = params[0];
      }
      maps.put(“param”,param);
      }
      // 得到上传的图片数据
      List portrait = multipartRequest.getFiles(“file”);
      if (portrait.size() > 0) {
      List imgs=new ArrayList();
      MultipartFile[] list = portrait.toArray(new MultipartFile[portrait.size()]);
      //文件上传目标路径
      Map<String, Object> map = FileUtils.uploadFiles(list, targetDir,
      imgDir, request, “images”, 1);
      if ((boolean)map.get(“success”)) {
      List files=(List)map.get(“files”);
      for(Map m:files){
      System.out.println(“----图片路径----”+m.toString());
      }
      maps.put(“files”,files);
      //多图片的情况,有可能存在有图片上传成功,有图片上传失败情况,需要前端再次去判断

               return ResponseDataUtil.buildSuccess(maps);
           }else{
               return ResponseDataUtil.buildError(map.get("msg").toString());
           }
           }
       }
       return ResponseDataUtil.buildError("没有图片数据");
      

      } catch (Exception e) {
      e.printStackTrace();
      return ResponseDataUtil.buildError(e.getMessage());
      }
      }

    /**

    • 单图上传 返回Json格式
    • @param request
    • @param targetDir 文件上传目标路径
    • @param imgDir 图片上传路径
    • @param param 需要获取的前台传来的参数
    • @return
      */
      public static ResponseData uploadImage(HttpServletRequest request, String targetDir, String imgDir, String param) {
      try {
      if(targetDir==null||targetDir.equals(“”)){
      targetDir=UPLOAD_FILE_PATH;
      }
      Map<String,Object> maps= new HashMap<>();
      if (ServletFileUpload.isMultipartContent(request)) {
      MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
      if(param!=null&&!param.equals(“”)){
      String[] params = multipartRequest.getParameterMap().get(param);
      if (params != null && params.length > 0) {
      param = params[0];
      }
      maps.put(“param”,param);
      }
      // 得到上传的图片数据
      MultipartFile portrait = multipartRequest.getFile(“file”);
      //文件上传目标路径
      Map<String, Object> map = FileUtils.fileUpload(portrait, targetDir,
      imgDir, request, “images”, 1);
      if ((boolean)map.get(“success”)) {
      maps.put(“file”,map)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值