【问题标题】:Where save uploaded avatar上传的头像保存在哪里
【发布时间】:2019-05-04 20:11:48
【问题描述】:

我找不到对我的问题的答复。

我正在使用 NodeJS 和 CRA 构建一个 React 应用程序,我需要实现一个上传头像系统。但我不确定在哪里保存上传的图像。我的 Node 服务器提供一个静态文件夹“public”,所以我需要将图像保存在 /public/avatar 中吗?但是每次我都会更新应用程序并重新构建客户端文件夹,这会覆盖公共文件夹并删除所有以前上传的头像?我是对的 ?那你给我什么建议?

谢谢,

【问题讨论】:

    标签: node.js reactjs file-upload avatar


    【解决方案1】:

    您可以在多个位置存储用户上传的图像,但将它们存储在公共位置可能不是最佳位置。

    如果您使用的是 MongoDB 等数据库,您可以使用 gridfs 将图像存储在 Mongo 中,并在检索用户信息时使用路由提供数据。同样,您也可以在数据库中存储文件的路径,并从路由中返回路径或文件数据。

    但是,请谨慎处理用户上传,因为如果您不小心,任意允许上传数据可能会导致意外结果。

    【讨论】:

    • 感谢您的回复 CoolestNerdlll。是的,我正在使用 MongoDB 来保存一些数据,但是在我实现显示头像的聊天的情况下,我无法在每次新用户说话时请求检索所有头像,我认为这不是一个很好的和有效的方法?
    • 如果您要显示用户的姓名、详细信息或有关用户的任何内容,返回该信息的请求/响应也可以很容易地包含图像的数据或图像的路径。
    • 嗯,好的,我现在知道如何实现它了。非常感谢。祝你有美好的一天
    • 希望这至少可以为您指明一个好的方向。您还可以查看缓存图像/数据以限制请求。
    • 是的,我会尝试获取更多相关信息。我认为有一些提供此功能的软件包。如果后面没有恶意软件,也许我必须检查上传的图像?
    【解决方案2】:

    您也可以使用 Gravatar (https://gravatar.com/)。 用户可以选择分配给他们的邮件地址哈希的头像,或者默认使用自动生成的头像。

    尽管使用此解决方案,您不能让用户直接在您的网站上更改他们的头像。

    它广泛用于 StackOverflow 等知名网站。

    【讨论】:

    • 是的,我读过他们的服务,但我并不是一个真正的粉丝。我觉得这有点太随意了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    相关资源
    最近更新 更多