上传图片时 formData vs JSON(最佳实践)

formData vs JSON when uploading images (best practices)

JSON 似乎比 formData 向服务器发送数据有很多好处。其中一些包括无需手动 stringfy 即可发送嵌套数据,或使像下面这样的简单代码成为可能:

data() {
    return {
      form: {},
    }
  },
methods: {
    submit() {
      this.form = await this.$axios.$post('/images', this.form)
    },

无论 'form' 对象的结构如何,我都可以轻松地发送它并管理服务器中的 JSON。当我们需要一起发送一些上传的文件时,这种方法的问题似乎就来了。最常见的方法似乎是以 base64 格式发送文件,但这是一种不好的做法,因为它会使文件变大。无论如何,我们可以发送附加到此 JSON 正文的文件而不将其转换为 base64,或者唯一的方法是使用 formData 方法?类似于 multipart-formdata 但带有 JSON?

不,json content-type 不能附加文件。 对于 API,最好单独上传文件,然后使用文件路径(或磁盘和文件名)将资源与文件相关联。

如果您必须执行单个请求,则它必须采用“formData”形式。