【问题标题】:How upload image with feathersjs?如何用feathersjs上传图片?
【发布时间】:2018-04-20 20:25:24
【问题描述】:

我有一个用户注册。我正在这样做:

 app.service('users').create(
   {
      email:  this.state.Username,
      Nom: this.state.Name,
      Image: "../image/p.png",
   })

我已成功将用户添加到数据库。现在,我想在“image”文件夹中上传一张图片,并将其路径保存在“Image”属性中。我该怎么做?

【问题讨论】:

    标签: feathersjs


    【解决方案1】:

    有一个tutorial given in FeathersJS's official documentation to upload a file。您可以按照本教程上传您的图像文件。

    但是,您可以使用教程中所示的上传服务通过单独的请求上传您的图像文件,作为响应,您将收到保存在指定文件夹中的文件名。像这样的:

    {
       "id":"6454364d8facd7a88e627e9329ffc2b7a5c879dc838.jpeg",
       "uri": "the-same-uri-we-uploaded",
       "size": 1156
    }
    

    这里,“id”是文件名。

    然后您可以将此文件名附加到用户对象:

    {
       email:  this.state.Username,
       Nom: this.state.Name,
       Image: "6454364d8facd7a88e627e9329ffc2b7a5c879dc838.jpeg",
    }
    

    并使用 users 服务或任何您已经用来保存用户的服务来保存它。

    另外,如果您想在单个请求中执行此操作,请将文件和用户数据提交给 users 服务并在 before hook 中调用 uploads 服务,保存文件并将此数据附加到用户对象中,以便 users 服务可以保存它。

    另外,请记住将您的图片保存在 public/images 文件夹中,以便可以通过以下方式访问它们:your-domain.com/images/6454364d8facd7a88e627e9329ffc2b7a5c879dc838.jpeg

    【讨论】:

    • 感谢您的帮助,我从您的回答中了解到,我需要存储上传服务的响应,然后将其分配给 Image 属性。现在,如果我在单个请求中使用挂钩来完成它,我不明白如何获得上传服务的答案。抱歉可能是个愚蠢的问题。
    • 我认为您应该使用第一个(在单独的请求中进行)。我不确定后一种解决方案是否可以使用“multipart/form-data”正确完成。但是,如果您通过直接发送 Base64 图像数据来实现它,它应该可以工作。你应该看到这个:github.com/feathersjs/feathers/issues/… 以了解如何从钩子调用服务。
    • 好的,谢谢,我会在单独的请求中尝试。
    • 请您了解一下这种类型的错误Cannot read property 'MISSING_PREFIX' of undefined
    • 这个错误在哪里显示?在上传图片请求中?
    猜你喜欢
    • 2021-12-21
    • 1970-01-01
    • 2020-11-13
    • 2016-07-24
    • 2019-05-30
    • 2015-06-03
    • 1970-01-01
    • 2021-08-02
    • 2019-11-22
    相关资源
    最近更新 更多