javascript - 反应:尝试一致地读取自定义文件会导致 index.html
问题描述
我正在尝试使用以下代码在我的 React 应用程序中读取用户选择的文件:
function Entries() {
async function importEntries() {
let file = document.getElementById('file-select').files[0];
let response = await fetch(file);
let textResponse = await response.text();
console.log(textResponse);
}
return (
<div className='Entries'>
<h2>Import entries</h2>
<label htmlFor='file-select'>Select file:</label>
<input type='file' name='file' id='file-select' />
<button onClick={importEntries}>Upload</button>
</div>
);
}
无论我选择哪个文件,这都会以某种方式始终如一地为我提供我的 React 应用程序公共目录中的 index.html 文件的内容。
有谁知道这是什么原因造成的?
解决方案
尝试这个:
替换<input type='file' name='file' id='file-select' />
为<input type='file' name='file' id='file-select' onChange={importEntries}/>
然后将您的importEntries
方法替换为:
async function importEntries(e) {
let file = e.target.files[0];
/* Try this edit */
let reader = new FileReader();
reader.readAsText(file);
reader.onload = function() {
console.log(reader.result);
};
reader.onerror = function() {
console.log(reader.error);
};
}
我还没有测试过代码让我知道这是否有效。
推荐阅读
- r - 在函数或循环中将多个过滤器作为参数传递并创建 ggplot 图表
- python - 在 bash shell 中使用 Python 2.6 从目录中读取文件的正确方法
- cassandra - cassandra jdbc serach(如何排除条件值为空的位置)
- python - Python 在两个 Excel 文档之间传输 excel 格式
- shell - 如果脚本通过管道运行,则保留标准输入
- windows - Windows CMD/BATCH 保持最新的日期戳文件
- c# - 如何在 Visual Studio Community for Mac 中启用实时错误检查?
- javascript - 客户端看不到 JS 动画
- scheme - 有没有办法让 vecfn 调用 vecadd #
- node.js - Azure Blob 存储 - Node.JS - createReadStream() 作为 POST 请求表单中的文件