spring实现wangeidtor中文件上传,自定义返回json结果

     //获取后端服务端口
    @Value("${server.port}")
    private String port;
    //获取后端服务IP
    @Value("${file.ip}")
    private String ip;
 
 /**
   * 富文本文件上传接口
   * @param file
   * @return
   * @throws IOException
   */
  @CrossOrigin //解决跨域
  @PostMapping("/editor/upload")
  public JSONObject editorUpload(MultipartFile file) throws IOException {
      String originalFilename = file.getOriginalFilename(); //获取源文件的文件名称
      //定义文件的唯一标识(前缀)
      String flag = IdUtil.fastSimpleUUID();
      //获取当前项目的目录  + files所在路径 + 文件名称
      String rootFilePath = System.getProperty("user.dir")+"/springboot/src/main/resources/files/"+flag+"_" + originalFilename; //获取上传的路径
      File saveFile = new File(rootFilePath);
      if(!saveFile.getParentFile().exists()){
          //如果文件夹目录不存在,则需要创建一个新的文件夹
          saveFile.getParentFile().mkdirs();
      }
      //前端获取的字节流写入
      FileUtil.writeBytes(file.getBytes(),rootFilePath); //把文件写入到上传的路径
      String url = saveFile.getPath(); Result.success("http://"+ip+":"+port+"/files/"+flag); //返回结果url

      //返回特定的json字符串格式
/*
      {
          // errno 即错误代码,0 表示没有错误。
          //       如果有错误,errno != 0,可通过下文中的监听函数 fail 拿到该错误码进行自定义处理
          "errno": 0,
              // data 是一个数组,返回图片Object,Object中包含需要包含url、alt和href三个属性,它们分别代表图片地址、图片文字说明和跳转链接,alt和href属性是可选的,可以不设置或设置为空字符串,需要注意的是url是一定要填的。
              "data": [
          {
              url: "图片地址",
          },
  ]
      }*/
      //返回特定的json字符串格式
      //定义一个json的对象
      JSONObject json = new JSONObject();
      json.set("errno",0);
      //定义一个arr空数组对象:用于存放data数组
      JSONArray arr =new JSONArray();
      //定义一个data数组中的对象
      JSONObject data =new JSONObject();
      arr.add(data); //存放data数组
      data.set("url",url);//设置数组的对象元素
      json.set("data",arr);//把数组放入最外层的对象
      return json;

  }
posted @ 2022-01-11 10:02  成强  阅读(101)  评论(0编辑  收藏  举报