element文件上传(导入)表单形式和blob流形式
在前端,你可以使用两种方式来上传文件:使用表单(FormData)或者使用Blob流。
- 使用表单(FormData)
HTML部分:
<form id="uploadForm" enctype="multipart/form-data">
<input type="file" id="file" name="file"/>
<input type="submit" value="Upload"/>
</form>
JavaScript部分:
document.getElementById('uploadForm').onsubmit = function(e) {
e.preventDefault();
var formData = new FormData(this);
fetch('/your-upload-url', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
};
- 使用Blob流
JavaScript部分:
var file = document.getElementById('file').files[0];
var reader = new FileReader();
reader.onload = function(e) {
var blob = new Blob([e.target.result]);
var formData = new FormData();
formData.append('file', blob, 'filename');
fetch('/your-upload-url', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
};
reader.readAsArrayBuffer(file);
在这两种方法中,你都可以使用fetch API来发送请求。这是目前在前端最常用的方式。你需要替换'/your-upload-url'为你的实际上传地址。
注意:这两种方法都需要后端有相应的处理上传文件的逻辑。
评论已关闭