angular - 获取文件输入类型的值返回空 - 角度
问题描述
我正在尝试使用 id 以角度获取文件输入类型的值。我能够获取文件名,但是当我尝试获取输入的值时,它返回空并在代码中引发错误。
这是我的代码
<input type="file" class="form-control-file"
id="doc" size="60"/>
我试图在其中获取值的 ts 文件
let f = (document.getElementById('doc') as HTMLInputElement).files[0]
let formdataF = (document.getElementById('doc') as HTMLInputElement).value
console.log("document name " + JSON.stringify(f)); //this keeps returning empty
请协助
解决方案
这是因为您无法使用 stringify 将 Object File 转换为 JSON 字符串。
你可以做的是:
- 将文件读取为字符串:
例子 :
async getValues() {
let f = (document.getElementById('doc') as HTMLInputElement).files[0]
let formdataF = (document.getElementById('doc') as HTMLInputElement).value
const toBase64 = file => new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = error => reject(error);
});
const result = await toBase64(f);
console.log("file", JSON.stringify(result));
}
- 将文件读取为base64字符串:
例子 :
getValues() {
let f = (document.getElementById('doc') as HTMLInputElement).files[0]
let formdataF = (document.getElementById('doc') as HTMLInputElement).value
var reader = new FileReader();
reader.onload = function(event) {
console.log('file :', event.target.result);
};
reader.readAsText(f);
}
推荐阅读
- python-3.x - 如何删除自动 py to exe 可执行文件?
- c# - 关于 C、C# 和 Unity 编译时间
- javascript - 我有一个对象数组。我想随机输出值总和等于八的对象
- python - 在python中使用硒的ElementNotInteractableException
- svg - 为什么在 SVG feComposite 过滤器中用作源的文本大小受 svg 元素大小的影响?
- amazon-web-services - 定期在 AWS RDS 中归档特定表的数据
- google-apps-script - 使用受保护的工作表和范围“仅查看”模式
- python - 我附上了我的代码。请检查它并告诉我错误的原因。解释一下?
- python - python def 方法应该有“self”作为第一个参数
- python-3.x - 如何更改 Visual Studio 代码工具栏的颜色?