若依架构删除服务器文件springboot项目也类似

        背景:大家在使用若依架构时上传文件,当上传成功是点击删除,vue只是把前端文件列表名称删除了,真正上传到服务器里的文件还在服务器upload文件里面。文件小点到无所谓,但是针对经常上传大文件的系统来说还是比较浪费服务器硬盘资源。

第一步:修改若依的fileUpload组件。

    // 删除文件
    handleDelete(index) {
      //字符串File文件路径
      let  fileName=this.fileList[index].url;
      this.fileList.splice(index, 1);
      this.$emit("input", this.listToString(this.fileList));
      //删除服务器文件
      this.removeFile(fileName);
    },

  添加一个从服务器删除文件的一个请求方法。

    //从服务器删除文件
    removeFile(fileName) {
      if (fileName) {
        // 构造要发送到后台的数据
        const data = {
          id: 1,
          content: fileName
        };
        request({
          url: '/common/remove/',
          method: 'put',
          data: data
        }).then(response => {
          this.$modal.msgWarning(response.msg)
          }
        );
      }
    },

第二步,在CommonController.java文件里面添加api接口,代码如下

    /**
     * 删除文件
     */
    @Log(title = "文件删除", businessType = BusinessType.DELETE)
    @PutMapping("/remove")
    public AjaxResult remove(@RequestBody ComData data)
    {
        //传过来文件多了/profile,所以需要在下面处理是截取
        String fileName = data.getContent();
        if (StringUtils.isNotEmpty(fileName)) {
            //只能删除指定文件后缀的文件
            String suffixName = PdfUtils.getSuffixName(fileName);
            List<String> list = Arrays.asList(FileUtils.allowedDeleteSuffixes);
            if (list.contains(suffixName)) {
                // 本地资源路径
                String localPath = RuoYiConfig.getProfile();
                String realPath = localPath + fileName.substring(8, fileName.length());
                FileUtils.deleteFile(realPath);
            } else {
                return AjaxResult.error("文件删除失败");
            }
        }
        return AjaxResult.success("文件已删除");
    }

这里面使用到一个bean类(接受传过的文件路径)和一个变量(允许删除的文件类型)。

package com.ruoyi.web.controller.common;

public class ComData {
    private Long id;
    private String content;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

变量我是放到了FileUtils.java这个文件里面的。

    //允许删除的文件类型
    public static String[] allowedDeleteSuffixes = new String[]{"doc", "docx", "xls", "xlsx", "ppt", "pptx", "txt", "pdf", "jpg", "jpeg", "png", "gif", "zip", "rar"};

第三部:把服务起来,点击要删除的文件。

系统提示删除文件成功、文件夹下的文件就删除了。

---------------------------------------结束---------------------------------------

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: Spring Boot项目架构通常包括以下几个主要组件和特点: 1. Spring Boot框架:Spring Boot是一个用于简化Spring应用程序开发的框架,它可以帮助开发人员快速创建和配置Spring应用程序。它使用特定的方式进行配置,从而减少了样板化的配置代码的编写。 2. 独立的应用程序:Spring Boot可以创建独立的Spring应用程序,这意味着应用程序可以作为一个可执行的JAR或WAR文件运行,而不需要依赖外部的Web容器。 3. 内嵌的Servlet容器:Spring Boot内置了多个Servlet容器,如Tomcat或Jetty,这样开发人员可以直接在应用程序中使用这些容器,而不需要单独安装和配置它们。 4. 自动配置:Spring Boot提供了自动配置的功能,它会根据应用程序的依赖和配置信息自动配置Spring容器和其他相关组件,从而减少了手动配置的工作量。 5. Starter项目对象模型(POMS):Spring Boot提供了一系列的“starter” POMS,这些POMS包含了一组预定义的依赖项,可以简化Maven配置,并帮助开发人员快速启动项目。 6. 特性支持:Spring Boot提供了一些准备好的特性,如指标、健康检查和外部化配置,这些特性可以帮助开发人员更好地监控和管理应用程序。 7. 无代码生成:Spring Boot不需要使用XML配置文件,它通过注解和约定来实现自动配置,从而避免了繁琐的代码生成和配置文件编写。 综上所述,Spring Boot项目架构包括Spring Boot框架、独立的应用程序、内嵌的Servlet容器、自动配置、Starter POMS、特性支持和无代码生成等特点。 #### 引用[.reference_title] - *1* *2* *3* [SpringBoot架构](https://blog.csdn.net/m0_58212960/article/details/125920222)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值