vue.js - vue js中两个文件输入字段之间的区别
问题描述
我在一个表单中有两个输入文件字段,如下所示:
<div class="singleInput50">
<span>Personal Image:</span>
<input type="file" @change="handleImage" accept="image/*" ref="imgPersonal">
</div>
<div class="singleInput50">
<span>Business logo</span>
<input type="file" @change="handleImage" accept="image/*" id="businessLogo">
</div>
两者都指定保存不同的图像(之后将转换为 base64),并且应该绑定到不同的数据变量,例如这两个:
businessLogo: '',
imgPersonal: '',
两者都用这种方法处理:
handleImage(e) {
const selectedImage = e.target.files[0];
this.createBase64Image(selectedImage);
},
createBase64Image(fileObject) {
const reader = new FileReader();
reader.onload = (e) => {
this.userObject.imgPersonal = e.target.result; **//Here I can't figure out how to make it dynamic, if a user choosed personalImage or businessLogo field**
};
reader.readAsDataURL(fileObject)
// console.log("file object", fileObject);
},
目标是使分配动态化。如果用户将文件上传到“个人图像”输入,图像将被分配给“imgPersonal”数据变量,如果是“企业标志”,图像图像将被分配给“企业标志”
解决方案
您可以简单地将参数传递给您的方法:
handleImage(e, imageName) {
const selectedImage = e.target.files[0];
this.createBase64Image(selectedImage, imageName);
},
createBase64Image(fileObject, imageName) {
const reader = new FileReader();
reader.onload = (e) => {
this.userObject[imageName] = e.target.result; **//Here I can't figure out how to make it dynamic, if a user choosed personalImage or businessLogo field**
};
reader.readAsDataURL(fileObject)
// console.log("file object", fileObject);
},
在您的模板中:
<div class="singleInput50">
<span>Personal Image:</span>
<input type="file" @change="handleImage($event, 'imgPersonal')" accept="image/*" ref="imgPersonal">
</div>
<div class="singleInput50">
<span>Business logo</span>
<input type="file" @change="handleImage($event, 'businessLogo')" accept="image/*" id="businessLogo">
</div>
推荐阅读
- sql - 在 SQL Server 中,BCP shell 命令不是在一个服务器中写入文件,而是在另一个服务器中创建文件。这个问题需要任何许可吗?
- javascript - 浏览器调整大小再次运行功能,我该怎么做?
- python - 这段代码可以更简单吗?哪个代码看起来更好?[反向循环]
- r - 始终使用列表中的一行 n 个其他数据框创建所有可能的数据框
- python - 熊猫 to_datetime 方法
- django - 如何在 Django 中通过 HttpResponse 或 JsonResponse 发送多个对象
- angular - 响应头年龄控制
- html - 排除 HTML 中的 linting
- python - 如何连接两个python DataFrame,如果该行已经退出,则不添加它,如果没有,则附加它
- node.js - NestJS 访问管道中的响应对象