使用FileReader导入javascript文件时如何保留换行符?

时间:2013-09-19 14:53:15

标签: javascript html5 filereader

我想知道如何检索文件的内容,并使用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方法但没有成功。难道我做错了什么 ? 谢谢

FileReader doc

修改

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

enter image description here enter image description here

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

1 个答案:

答案 0 :(得分:8)

这是一个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/