【问题标题】:there is @adonisjs/drive at adonisjs 5?adonisjs 5 有@adonisjs/drive 吗?
【发布时间】:2020-11-02 17:40:31
【问题描述】:

最近我使用 adonis 5 作为后端,在我当前的项目中,我需要使用驱动器存储并在前端返回文件以供下载,这在带有 @adonisjs/drive 的 adonisjs 4.1 上是可行的,但我没有找到等效的方法在adonis 5 ¿ 我可以在adonisjs 5 中使用@adonisjs/drive 吗?或 ¿anoter 库我可以使用什么? ¿ 在 adonis 5 有等效的方法吗?我阅读了文档,但我只找到了请求文件方法,而不是将文件返回到前端的方法。

感谢您的回答

【问题讨论】:

    标签: javascript node.js adonis.js


    【解决方案1】:

    在撰写本文时(2020 年 11 月 24 日),Adonis Drive 尚未转换为 Adonis 5。因此,您现在无法将此包与版本 5 一起使用。

    【讨论】:

      【解决方案2】:

      另一种方法是使用上下文响应,如本节所述 https://docs.adonisjs.com/guides/response#download

      // app/Controllers/Http/FilesController.ts
       
      import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
      import Application from '@ioc:Adonis/Core/Application'
      
      export default class FilesController {
        /**
         *
         * @param response
         * @param params
         */
        public async download({ response, params }: HttpContextContract) {
          // projectname/tmp/uploads/world.txt
          const filePath = Application.tmpPath(`uploads/${params.name}`)
          return response.download(filePath)
        }
      }
      
      // start/routes.ts
      
      // example http://127.0.0.1:3333/file/world.txt
      Route.get('/file/:name', 'FilesController.download')
      
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-31
        • 2020-11-30
        • 2021-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多