为了账号安全,请及时绑定邮箱和手机立即绑定

如何从trapi的上传文件夹中删除文件?

如何从trapi的上传文件夹中删除文件?

人到中年有点甜 2021-12-02 19:34:11
我有一个带有媒体类型字段的条目。当我尝试删除某些条目时,我使用的是代码:strapi.query('entry').delete({ id: entry.id });strapi.query('file', 'upload').delete({ id: entry.image.id });该条目已成功删除,以及“文件上传”中的记录。但文件仍保留在上传文件夹中。我怎样才能删除它?
查看完整描述

3 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

此代码从媒体库中删除条目并从uploads目录中删除文件:


const file = await strapi.plugins['upload'].services.upload.fetch({ id });

await strapi.plugins['upload'].services.upload.remove(file);


查看完整回答
反对 回复 2021-12-02
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

假设您的内容类型是文章,请尝试以下操作:


在/api/articles/controllers/articles.js


 'use strict';

const { parseMultipartData, sanitizeEntity } = require('strapi-utils');


module.exports = {

  async delete(ctx) {

    const { id } = ctx.params;

    const entity = await strapi.services.articles.delete({ id });


    //with strapi multiple media

    if(entity){

      if (entity.gallery.length > 0) {

        entity.gallery.forEach(image => {

          strapi.plugins.upload.services.upload.remove(image);

        });

      }

    }


    //or with strapi single media

    if(entity){

      strapi.plugins.upload.services.upload.remove(entity.image);

    }


    return sanitizeEntity(entity, { model: strapi.models.articles });

  }

}


查看完整回答
反对 回复 2021-12-02
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

尝试调用 Strapi org. 控制器中的功能:


delete: async ctx => {

    ctx.body = await strapi.plugins['content-manager'].services['contentmanager'].delete(ctx.params, ctx.request.query);

},


deleteAll: async ctx => {

    ctx.body = await strapi.plugins['content-manager'].services['contentmanager'].deleteMany(ctx.params, ctx.request.query);

}


查看完整回答
反对 回复 2021-12-02
  • 3 回答
  • 0 关注
  • 250 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信