怎么把一个图片转化成文件流 传递后端
时间: 2023-08-04 13:09:29 浏览: 127
在前端将图片转化为文件流并传递到后端时,可以使用 HTML5 中的 File API 和 FormData 对象。具体步骤如下:
1. 使用 input 元素的 type 属性设置为 file,让用户选择图片文件。
2. 通过 File API 中的 FileReader 对象,将图片文件转换为二进制数据流。
3. 将二进制数据流转换为 Blob 对象,并将其作为 FormData 对象的一个字段,然后将 FormData 对象通过 XMLHttpRequest 或 fetch API 发送到后端。
以下是一个使用 XMLHttpRequest 对象将图片文件流传递到后端的示例代码:
```html
<!-- HTML 代码 -->
<input type="file" id="file-input">
<button onclick="upload()">上传</button>
```
```javascript
// JavaScript 代码
function upload() {
const fileInput = document.getElementById('file-input');
const file = fileInput.files[0];
const reader = new FileReader();
reader.onload = function() {
const blob = new Blob([reader.result], { type: file.type });
const formData = new FormData();
formData.append('image', blob, file.name);
const xhr = new XMLHttpRequest();
xhr.open('POST', '/upload');
xhr.send(formData);
};
reader.readAsArrayBuffer(file);
}
```
在上面的代码中,首先通过 input 元素获取用户选择的图片文件,然后使用 FileReader 对象将图片文件转换为二进制数据流。接着,将二进制数据流转换为 Blob 对象,并将其添加到 FormData 对象中。最后,使用 XMLHttpRequest 对象将 FormData 对象发送到后端。
需要注意的是,以上代码仅供参考,实际开发中可能需要对代码进行适当的修改以适应具体的业务需求。
阅读全文