Javascript html值正在截断我的字符串

Javascript html值正在截断我的字符串,javascript,html,input,truncate,Javascript,Html,Input,Truncate,在我的页面上,我使用HTML5在浏览器上上传文件。该文件为PDF格式,必须以 这是我的代码: var files = evt.target.files; // FileList object // files is a FileList of File objects. List some properties. for (var i = 0, f; f = files[i]; i++) { console.log(f.name); console.log(f.type);

在我的页面上,我使用HTML5在浏览器上上传文件。该文件为PDF格式,必须以

这是我的代码:

var files = evt.target.files; // FileList object

// files is a FileList of File objects. List some properties.
for (var i = 0, f; f = files[i]; i++) {
    console.log(f.name);
    console.log(f.type);
    console.log(f.size);

    //Update document info
    $("#document_filename").find("input").val(f.name);
    $("#document_mimetype").find("input").val(f.type);


    var reader = new FileReader();

    // Closure to capture the file information.
    reader.onloadend = (function(theFile) {
        return function(e) {
        content = e.target.result.replace(/^data:[^;]*;base64,/, "");
        console.log(content.length);
        $("#document_content").find("input").val(content);
        a = document.getElementById("document_content").getElementsByTagName("input")[0];
        a.value = content;
        console.log(a.value.length);
        };
    })(f);

    // Read in the image file as a data URL.
            reader.readAsDataURL(f);

}
当我上传一个1.5MB的大文件时,我的控制台显示:

    contrat.pdf             // The file name
    application/pdf         // The file type
    1510788                 // The file size
    2014384                 // The length of the b64 content
    524288                  // The length of string once inserted in the input box??
有人能向我解释一下我在截短数据方面做错了什么吗

谢谢,

如上所述,文本类型的
输入可能的最大长度至少在Chrome上是524288。这就是你所拥有的

我建议你把你的价值储存在另一个地方


编辑:

不同浏览器的实现方式不同:在FF(v32)上,我的长度可以大于524288(我已经测试了10.000.000),但在Chrome上,它被限制为524288,即使我们增加了
maxlength
属性


关于这个问题,WebKit还有一个公开的问题:

首先要确保
document.getElementById(“document\u content”).getElementsByTagName(“input”)[0]
返回与
$(“\document\u content”).find(“input”).val(content)
相同的元素。你为什么要这么做?其次,您是否对
进行了验证
maxlength
?嗨,它返回的是相同的。我这样做是因为我正在编写Jquery,当我构建inputbox时,我已经用原生js编写了这行代码,以避免Jquery错误。我仍然有相同的行为…HTML代码丢失。信息请点击Thx。这就是我要找的。。。但是你怎么理解呢?maxlength的默认值是524288?或者最大值绝对是524288?你建议怎么储存?文本区?为什么需要显示它?您只能将其存储到某个JS变量?我确实需要显示。用户可以编辑此值(例如,从另一个输入框复制/粘贴它…)复制/粘贴二进制数据???可能会建议一个按钮,允许将此值添加到剪贴板,但此值的显示似乎很奇怪。顺便说一句,我更新了我的答案,并补充了一些意见……请注意,W3Schools的声明没有提及任何规范或标准。HTML5或各种DOM标准中没有这样的限制。这些问题的答案可能有用。因此,虽然524288在某些浏览器中可能是一个限制,但它并没有在任何地方指定,而且在不同的浏览器中,甚至在同一浏览器的不同版本中,可能是不同的。