“未捕获的TypeError:fileReader.readAsDataurl不是函数”自动函数框问题

时间:2018-11-16 15:34:06

标签: javascript html

所以我试图将PDF文件转换为base64。

我已经看到了几个不同的示例,下面的示例是我坚持此问题的示例。 但是我认为我已经将问题缩小到reader.readAsDataURL(file);了。 在尝试了这些示例之后,我在所有示例上都遇到了相同的问题。

未捕获的TypeError:fileReader.readAsDataurl不是函数

我进行了一些研究,得出的结论是错误是由套管引起的,我在w3学校输入中使用小写字母对该文件进行了测试,结果出现了与Web服务器上相同的问题。

然后,我将案件转为大写,但突然生效。但是,当我在Web服务器中切换案件时,问题仍然存在。 因此,我检查了控制台,发现外壳是从fileReader.readAsDataURL(fileToLoad);自动更改的。到fileReader.readAsDataurl(fileToLoad);。由于W3学校输入的小写字母存在相同的问题,我想知道是否有一种方法可以强制功能名称使用大写字母。

我已经检查了这两个和其他几个,它们似乎没有遇到这个问题。

ReadAsDataURL() doesn't work

JavaScript readAsDataurl is not a function

第二个似乎我该如何处理,但是页面会自动将所有“ readAsDataURL”切换为小写。 还有其他人有这个问题吗?有没有解决方法,或者我的网络服务器有问题吗?我应该问公司的支持热线吗?

TL; DR有没有办法防止页面自动更改函数名称的大小写? (还是问题完全在其他地方?)

    function convertToBase64() {
        //Read File
        var selectedFile = document.getElementById("inputFile").files;
        //Check File is not Empty
        if (selectedFile.length > 0) {
            // Select the very first file from list
            var fileToLoad = selectedFile[0];
            // FileReader function for read the file.
            var fileReader = new FileReader();
            var base64;
            // Onload of file read the file content
            fileReader.onload = function(fileLoadedEvent) {
                base64 = fileLoadedEvent.target.result;
                // Print data in console
                console.log(base64);
            };
            // Convert data to base64
            fileReader.readAsDataURL(fileToLoad);
        }
    }
<input id="inputFile" type="file" onchange="convertToBase64();" />

1 个答案:

答案 0 :(得分:0)

测试了来自支持票证的响应,并且该响应有效。网络服务器通过一个系统运行页面,该系统查找并替换了许多单词或短语。我最后要做的就是改变:

fileReader.readAsDataURL(fileToLoad);

fileReader['readAsDataURL'](fileToLoad);

希望这对另外两个可能会遇到这种问题的人很有用。