使用VUEJ和Typescript将输入图像转换为base64
这是我在这里的第一个问题。
我想使用vuejs 3将输入文件(image)从表单中转换为typescript和base64,以将其“发送”到我的后端(Java,Spring Boot),并将其存储在MongoDB中,作为“用户”模型的一部分
。我拥有的:
e.target.files [0]行不断地说它可能是无效的。
<template>
<v-file-input
@change="handleImage"
type="file"
accept="image/*"
label="File input"
v-model="picture"
filled
prepend-icon="mdi-camera"
></v-file-input>
</template>
<script lang="ts">
interface State {
picture: string;
}
data: (): State => {
return {
picture: "",
}
}
methods: {
handleImage(e: Event) {
const selectedImage = e.target.files[0];
this.createBase64Image(selectedImage);
},
createBase64Image(fileObject: File) {
const reader = new FileReader();
reader.onload = (e) => {
this.picture = e.target.result;
};
reader.readAsBinaryString(fileObject);
},
},
</script>
预先感谢您的帮助!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以更改 reader.readasbinarystring(fileObject) createBase64Image 函数函数 reader.readasdataurl(fileObject)
也有助于使用Refs在您的组件中
其他信息中:
You could change reader.readAsBinaryString(fileObject) in the createBase64Image function to reader.readAsDataURL(fileObject)
Also something that would help is to use refs in your component
Additional Information:
https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL
我认为Onchange事件并不能保证E.Target.Result是非无效的。进行此检查:
I think onchange event doesn't guarantees e.target.result to be non-null. Do this check: