我正在使用showOpenFilePicker访问用户选择的照片。但选择照片后,输入文件数据为空。它看起来像他没有。所以我试图手动添加用户选择的照片到输入文件元素。但仍然没有发生。我该怎么办?
网页:
<div class="col-md-3 iniTpe">
<div class="form-group">
<label for="researchPhoto">Example file input</label>
<input name="researchPhoto" onclick="Research.OpenFiles(event)" type="file" accept="image/*" class="form-control-file" id="researchPhoto">
</div>
</div>
浏览器:
OpenFiles: async function (event) {
event.preventDefault();
let files = await window.showOpenFilePicker({
types: [
{
description: 'İmage Files',
accept: {
'image/*': ['.png', '.gif', '.jpeg', '.jpg'],
},
},
],
excludeAcceptAllOption: true,
multiple: false,
});
let fileData = await files[0].getFile();
document.getElementById("researchPhoto").files[0] = fileData;
console.log(document.getElementById("researchPhoto").files[0])//comes null. normally it should not be null
}
1条答案
按热度按时间v64noz0r1#
我相信在
.getFile()
之后你还需要一个额外的步骤。每个MDNgetFile
返回一个blob。你可能想使用像.text()
这样的方法来获取文件的文本,或者使用文档中提到的另一个函数,比如createBitmapImage()
来将文件作为图像处理。