上传图像时的formData与JSON(最佳实践)


在向服务器发送数据方面,JSON似乎比formData有很多好处。其中一些包括发送嵌套数据而无需手动字符串,或者使以下简单代码可以工作:
data() {
return {
form: {},
}
},
methods: {
submit() {
this.form = await this.$axios.$post('/images', this.form)
},

无论"表单"对象的结构如何,我都可以轻松地发送它并在服务器中管理JSON。当我们需要一起发送一些上传的文件时,这种方法的问题似乎就出现了。最常见的方法似乎是以base64发送文件,但这是一种糟糕的做法,因为它会使文件大小变大。是否有这样的方法,我们可以在不将其转换为base64的情况下发送一个附加到JSON主体的文件,或者唯一的方法是使用formData方法?类似于多部分表单数据,但使用JSON?

否,json内容类型不能附加文件。对于API,最好单独进行文件上传,然后使用文件的路径(或磁盘和文件名(将资源与文件关联起来。

如果你必须做一个单一的请求,那么它必须在";formData";form。

更新:另一种方法是从客户端以base64格式对文件进行编码,然后在后端对其进行解码(潜在的质量损失,尚未尝试过,只是一个建议(

最新更新