Nuxt.js - 如何将图像上传到 cloudinary?

Posted

技术标签:

【中文标题】Nuxt.js - 如何将图像上传到 cloudinary?【英文标题】:Nuxt.js - How to upload image to cloudinary? 【发布时间】:2021-03-08 03:15:23 【问题描述】:

我正在尝试从客户端将图像上传到 cloudinary。我创建了一个表单数据,我正在尝试传递它,但它返回为空。

html

<div class="my-2">
  <input
    id="image"
    ref="image"
    type="file"
    class="inputfile img"
    name="image"
    aria-describedby="imageFile"
    accept="image/*"
    @change="addImage"
  />
  <label for="image">
    <span> fileName </span>
    <strong><i class="fas fa-upload"></i> Choose an Image&hellip;</strong>
  </label>
</div>

调用的addImage函数:

    async addImage(image) 
      try 
        this.$emit('input', image.target.files[0]);

        this.photo = this.$refs.image.files[0];
        this.photoName = this.photo.name;

        const formData = new FormData();
        formData.append('file', this.photo, this.photo.name);

        const upload = await this.$cloudinary.upload(formData, 
          upload_preset: 'jj4vb6nq',
        );

       catch (e) 
        console.error(e.message);
        // this.error = e.message;
      
    ,

当它尝试上传时,我收到以下错误:


  "message": "Invalid file parameter. Make sure your file parameter does not include '[]'"

有没有更好的上传图片的方法?

【问题讨论】:

当您发送到 cloudinary 时,能否在网络选项卡中记录您的请求负载? ` FormData Object upload_preset: "jj4vb6nq" ` 即使我附加了信息,formData 对象似乎也是空的。 你能记录下this.photo = this.$refs.image.files[0]; this.photo 的日志是 File name: "Screenshot from 2020-11-05 16-12-45.png", lastModified: 1604590494854, webkitRelativePath: "", size: 291860, type : "图片/png" 尝试更改此行this.photo = image.target.files[0] 【参考方案1】:

由于您将对象作为文件传递,而不仅仅是文件本身,您会收到此错误。 该文件可以是现有文件的实际数据(字节数组缓冲区)、数据 URI(Base64 编码)、远程 FTP、HTTP 或 HTTPS URL。

【讨论】:

以上是关于Nuxt.js - 如何将图像上传到 cloudinary?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 laravel 后端 API 在 nuxt.js 中上传图片

将资产图像路径作为动态内联样式背景图像 url (Nuxt.js)

Nuxt.js + vuetify 图像未加载

如何将 jQuery 安装到 Nuxt.js 中?

如何使用nuxt js将字体嵌入到所有页面

如何将 npm 包中的 JS 文件包含到 Nuxt.js 中的单独页面