【问题标题】:How can I create user upload avatar function如何创建用户上传头像功能
【发布时间】:2021-06-20 21:46:54
【问题描述】:

我在我的项目中使用 nextjs 和 cloudinary-react:

这是我的用户信息:

这是我上传功能的代码库:

  const uploadImage = () => {
    const formData = new FormData();
    formData.append("file", imageSelected);
    formData.append("upload_preset", "teammateme");

    axios.post("https://api.cloudinary.com/v1_1/teammateme/image/upload", formData)
      .then((response) => {
        console.log(response);
      });
  };

return (     
<Card className="profile--card_container">
        <CardContent>
          {picture ? (
            <div>
              <Avatar
                src={picture}
                alt="Avatar"
                className="avatar--profile_image"
              />
              <input
                type="file"
                onChange={(event) => {
                  setImageSelected(event.target.files[0]);
                }}
              />
              <button onClick={uploadImage}>Submit</button>
            </div>
          ) : (
            <AccountCircleIcon className="avatar--profile_image" />
          )}
)

如何制作用户头像的上传图片?

更新控制台:

【问题讨论】:

  • 你到底想要什么? api调用成功后通过api发送图片到服务器还是更新UI?
  • @agentp 只是更新我的控制台的图像

标签: reactjs cloudinary


【解决方案1】:

如果我理解正确,您正在尝试在成功上传到 Cloudinary 后返回 secure_url。为此,您可以替换:

axios.post("https://api.cloudinary.com/v1_1/teammateme/image/upload", formData)
  .then((response) => {
    console.log(response);
  });

与:

axios.post("https://api.cloudinary.com/v1_1/teammateme/image/upload", formData)
  .then((response) => {
    return response.json();
  })
  .then((data) => {
    console.log(data);
    var url = data.secure_url;
  });

这将记录完整的 Cloudinary 响应,然后在 url 变量中提取 secure_url

【讨论】:

  • 感谢您的帮助。我是否需要在服务器中创建路由以使其像从客户端发送图像到服务器然后将其存储在云端?
  • 在当前的实现中,上传是从客户端完成的,并将图像存储在 Cloudinary 上。要将上传图像的 URL 保留在您的服务器上,您将在您的服务器上有一个端点,您将传递从 Cloudinary 返回的 URL 和您的用户标识符。或者,您可以将用户文件上传到您的服务器,然后上传到服务器端的 Cloudinary。这样,您可以将 Cloudinary 返回的响应直接存储在您的服务器上,然后将新上传图片的 URL 传递给您的前端。
  • 怎么写?
猜你喜欢
  • 2013-09-05
  • 2014-07-29
  • 1970-01-01
  • 1970-01-01
  • 2011-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
相关资源
最近更新 更多