6

我想知道如何使用 FileReader 对象检索保留特殊字符的文件的内容。

<form enctype="multipart/form-data">
    <input type="file" id="file" name="file">
</form>
<script>
    $('#file').change(function () {
        var file = document.getElementById('file').files[0];

        var reader = new FileReader();

        reader.onload = function (event) {
            var file_content = event.target.result;
            console.log(file_content);
        }

        reader.readAsBinaryString(file);
    }
</script>

此代码打印

"line1line2"

除了我的文件内容是

line1
line2

我怎样才能得到 ?

line1\nline2

我尝试了 readAsBinaryString 和 readAsText 方法,但没有成功。难道我做错了什么 ?谢谢

文件阅读器文档

编辑:

JSfiddle 上的一个例子http://jsfiddle.net/yTgp7/

在此处输入图像描述 在此处输入图像描述

该问题仅存在于 mac Os X 上的 Firefox

4

1 回答 1

9

这是一个 Firefox 错误,其文本文件仅包含“CR”作为行尾。

这与 MacOSX 无关,而是与 Firefox 相关。如果您的文件仅包含 'CR' 而不是 'LF 或 'CR/LF',则在 Windows 下会得到相同的结果。

您必须用“LF”(或“CR/LF”)替换“CR”:

    alert(event.target.result.replace(/\r/g, "\n"));

这是您的 jsFiddle 的工作版本:http: //jsfiddle.net/Y56Tq/3/

于 2013-09-20T11:33:41.187 回答