我有一个javascript函数提交表单帖子使用简单的httppost将图像上传到s3,表单适用于提交,但我想使用ajax我发现文件输入未提交为我' m使用值字段。我试图用文件[0]抓住它,但那是空的..
httppost是否提交整个文件,我是否需要阅读文件内容或者使用ajax作为文件字段的值发布网址?!这似乎没有用。
我更喜欢ajax,因为当我使用普通提交时,它会刷新整个页面并重定向用户。我想将文件发送到s3并使用ajax从s3截取xml响应而不刷新浏览器。
在执行提交操作之前似乎没有加载文件内容,因此在表单提交之前文件的内容不可用,如何从javascript触发此操作?我没有使用jquery,所以我想知道如何将文件内容作为post变量从javascript发布。
答案 0 :(得分:1)
您可以POST
File
或Blob
直接通过在body
fetch()
调用时设置实例,或将File
对象追加到FormData
对象和POST
multipart/form-data
到服务器。
document.querySelector("input[type=file]")
.onchange = e => {
if (e.target.files.length)
fetch("/path/to/server", {
method:"POST",
body:e.target.files[0]
})
.then(response => console.log(response.ok))
.catch(err => console.error(err))
}
}