如何使用JS fetch API上传文件? [英] How do I upload a file with the JS fetch API?
本文介绍了如何使用JS fetch API上传文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我仍然试图绕过它。
我可以让用户通过文件输入选择文件(甚至是多个):
I can have the user select the file (or even multiple) with the file input:
<form>
<div>
<label>Select file to upload</label>
<input type="file">
</div>
<button type="submit">Convert</button>
</form>
我可以使用提交
事件来捕获<在此处填写您的事件处理程序>
。但是,一旦我这样做,我如何使用 fetch
发送文件?
And I can catch the submit
event using <fill in your event handler here>
. But once I do, how do I send the file using fetch
?
fetch('/files', {
method: 'post',
// what goes here? What is the "body" for this? content-type header?
}).then(/* whatever */);
推荐答案
这是带注释的基本示例。您正在寻找上传
功能:
This is a basic example with comments. The upload
function is what you are looking for:
// Select your input type file and store it in a variable
const input = document.getElementById('fileinput');
// This will upload the file after having read it
const upload = (file) => {
fetch('http://www.example.net', { // Your POST endpoint
method: 'POST',
headers: {
"Content-Type": "You will perhaps need to define a content-type here"
},
body: file // This is your file object
}).then(
response => response.json() // if the response is a JSON object
).then(
success => console.log(success) // Handle the success response object
).catch(
error => console.log(error) // Handle the error response object
);
};
// Event handler executed when a file is selected
const onSelectFile = () => upload(input.files[0]);
// Add a listener on your input
// It will be triggered when a file will be selected
input.addEventListener('change', onSelectFile, false);
这篇关于如何使用JS fetch API上传文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文