我正在使用Rails后端构建一个Vue应用程序。我正在关注一些在线文章,其中提出了一个工作流程,我:
前两个步骤工作正常,但是我很难理解如何在请求类型为“多部分/表单数据”的请求中包含文件数据。
我的代码如下,我使用vuetify作为组件库:
<template>
<v-form>
<v-file-input v-model="file" label="File input"></v-file-input>
<v-btn class="mt-2" block bottom color="primary" @click="submit">Opslaan</v-btn>
</v-form>
</template>
<script>
import { axios_request } from '../_helpers';
export default {
name:'AccountImageForm',
data: () => ({
file: {}
}),
methods: {
filesChange(event) {
this.file = event.target.files[0]
},
submit() {
axios_request('/api/v1/images/upload_url')
.then(
response => {
// this response contains the pre-signed info
var data = {
...response.url_fields,
file: this.file
}
var headers = { 'Content-Type': 'multipart/form-data' }
axios_request(response.url, 'POST', data, headers)
.then(
response => {
console.log(response)
}
)
}
)
},
}
}
</script>
此请求失败,出现以下错误
<Error>
<Code>MalformedPOSTRequest</Code>
<Message>The body of your POST request is not well-formed multipart/form-data.</Message>
<RequestId>x</RequestId>
<HostId>xx</HostId>
</Error>
当我查看原始的formData时,似乎filedata是空的。请求的大小也不够大,所以我的假设是文件丢失了。是否有一些额外的工作来序列化此请求的文件?
谢谢
问题是您试图发布多部分/表单数据
,但发送的是一个JS对象文本,Axios可能只是在串接它。
您需要做的是创建一个FormData
实例。
举个例子
response => {
// convert your url_fields into a FormData instance
const data = Object.entries(response.url_fields).reduce((fd, [ key, val ]) =>
(fd.append(key, val), fd), new FormData())
// now add the file
data.append('file', this.file)
axios_request(response.url, 'POST', data)
.then(...)
}
问题内容: 我想执行一个预签名的POST以将文件上传到AWSS3存储桶-如何在Go中完成? 请注意,这与通过PUT进行预签名上传不同。 问题答案: 因此,为了帮助他人,我将自己回答问题,并提供一些代码来帮助可能遇到相同问题的其他人。 可在此处找到Google App Engine呈现预签名POST表单的示例网络应用。 和一个小型图书馆,我创建做在Go预签POST。 简而言之,对公共读取的Amazo
找到apk文件签名的最简单方法是什么?请注意,我不是在问代码。我只想从我的电脑上找到它。像这样的签名975yYkKAQF KST7g3ASHvHkYopq=
我正试图通过一个预先签名的URL将一个文件上传到Amazon S3 bucket,这是我从第三个服务获得的。意思是,我没有生成这个URL。我已经阅读了AWS文档,但我不能把它们全部放在一起。这就是我指的。 预选。php 目前,我的代码是这样的。请注意,
我试图使用angular客户端将文件上传到Amazon S3。我已经使用NodeJs应用服务器生成了一个预先签名的URL。在将文件上传到预先签名的URL时,我收到一个错误,如下所示: "对预检请求的响应没有通过权限改造检查:请求的资源上没有'Access-Control-Allow-Origin'标头。因此不允许访问Origin'http://localhost:4200'。" 我已将以下 COR
我有一个从AWS S3预先签署的上传网址上传视频文件。在邮递员上测试视频成功上传。然而,我得到一个403返回时,实施改造。我无法对此任务使用多部分上传。 服务调用: 上传: 我已经确保URL是正确的。内容类型标题也被添加,邮递员截图附后。得到403禁止错误 邮递员截图 我发现了这个相关的问题,但我仍然得到一个403。使用改造2 将文件上传到 AWS S3 预签名 URL 有什么建议吗?
谢谢你的帮助。