将图像上传到 GraphQL 服务器

Posted

技术标签:

【中文标题】将图像上传到 GraphQL 服务器【英文标题】:Upload image to GraphQL server 【发布时间】:2017-06-22 20:30:41 【问题描述】:

我正在使用 react-dropzone 和 graphql-server-express-upload 在 GraphQL Apollo 中上传图片。在我的客户端中,文件如下所示:

但在服务器中,当我登录时,它看起来像这样:

 preview: 'blob:http://localhost:3000/c622b0bd-3f0d-4f52-91f4-7676c8534c59' 

我正在按照graphql-server-express-upload 中的自述文件中的说明进行操作,但到目前为止还没有运气。如何获得完整的图像?

【问题讨论】:

你为什么不使用静态休息路由上传,并捕获该休息路由的 responsefilepath 并使用文件路径的响应在数据库中更新并从路径中获取图像,而用户查询 【参考方案1】:

另一种方法是在客户端将二进制图像转换为 BASE64,然后再上传,然后将图像填充为作为突变参数传递的 GraphQLInputObjectType 上的 BASE64 字符串。在服务器上,该字段可以简单地保存在数据库列中。例如:

const UserInputType = new GraphQLInputObjectType(
  name: 'UserInput',
  description: 'The user of our system',

  fields: () => (
    username: 
        type: GraphQLString,
        description: 'Name of the user'
    ,
    image: 
        type: GraphQLString,
        description: 'Image of the user'
    
  )
);

【讨论】:

【参考方案2】:

我最终使用了apollo-upload-client,效果很好!

【讨论】:

你能添加你的代码或github链接吗?将不胜感激!我发现的代码很少。谢谢!

以上是关于将图像上传到 GraphQL 服务器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 hasura graphql 引擎上上传文件或图像

使用 nextjs 应用程序中的 axios 将文件上传到 graphql api 服务器时我错在哪里?

nodejs问题将graphql上传文件发送到服务

将“本地”文件从 nodejs 上传到 rails graphql 后端(服务器到服务器)

node.js / react 使用 graphql createReadStream 上传文件不是函数

如何将图片从 TinyMCE 上传到 Apollo GraphQL 服务器?