gpt4 book ai didi

javascript - 文件 API FileReader() readAsText 函数不适用于类型 'file'

转载 作者:行者123 更新时间:2023-11-29 10:48:42 24 4
gpt4 key购买 nike

我为本地文件处理创建了一个测试,但无法获取"file"类型以返回 Chrome 或 Firefox 中的任何内容。 Chrome 没有给出任何错误,并且表现得好像从未调用过 FileReader(),而 Firefox 给出了一个奇怪的错误。 FileReader() 在 Blob 类型上运行良好。有任何想法吗?看下面的测试代码:

<head>

<script language="JavaScript" type="text/javascript">

var ContentString='(empty)';

var reader = new FileReader();
var testBLOB = new Blob(['Test Blob'], { "type" : "text/plain" });
reader.onload = function(event) {ContentString = event.target.result;};
reader.onerror = function(event) {alert('Load error!');};

function WriteContents(Iteration,FileOrBlob)
{
if (Iteration==0)
{
if (FileOrBlob==0)
{
try
{
var fileUpload=document.getElementById("inputFile");
//alert(fileUpload.type);
reader.readAsText(fileUpload/*, "UTF-8"*/);
}
catch(err) {alert(err.message);}
}
else
{
reader.readAsText(testBLOB/*, "UTF-8"*/);
}
}

document.getElementById("Iteration").innerHTML=Iteration;
document.getElementById("ContentString").innerHTML=ContentString;
document.getElementById("error").innerHTML=reader.error;
document.getElementById("readyState").innerHTML=reader.readyState;
document.getElementById("result").innerHTML=reader.result;

setTimeout('WriteContents('+(Iteration+1)+','+FileOrBlob+');',5000);
}

if (window.File && window.FileReader && window.FileList && window.Blob) {document.write('OK<br>');} else {document.write('Browser Error<br>');}

</script>

</head>

<br>
<input type="file" id="inputFile" name="inputFile" onchange="WriteContents(0,0);">&nbsp;
<input type="button" onclick="WriteContents(0,1);" value="Use Test Blob">
<br><br>
<table border=1>
<tr><td>Iteration</td><td id="Iteration">Choose File or Blob Above (one time only please!)</td></tr>
<tr><td>ContentString</td><td id="ContentString"></td></tr>
<tr><td>error</td><td id="error"></td></tr>
<tr><td>readyState</td><td id="readyState"></td></tr>
<tr><td>result</td><td id="result"></td></tr>

最佳答案

在这篇文章中找到了答案:

File API: Returns file reference (object) or whole file content (string)?

您需要访问"file"的 blob 部分 - 这些行

var fileUpload=document.getElementById("inputFile");
reader.readAsText(fileUpload/*, "UTF-8"*/);

应该是

var fileUpload=document.getElementById("inputFile").files[0];
reader.readAsText(fileUpload/*, "UTF-8"*/);

只剩9个字了!!

关于javascript - 文件 API FileReader() readAsText 函数不适用于类型 'file',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14362496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com