0

我错过了一些东西,但我不确定它可能是什么......

我正在尝试将拖放文件的 Base 64 代码版本推送到文本区域中...但由于某种原因它无法正常工作...

有人愿意告诉我代码哪里出错了吗?这对我来说是新的领域...

$(document).ready(function() {

    function processFile(file){
        var o = $("#fileInfo");
        var reader = new FileReader();
        reader.onload = function(e) {
        o.innerHTML = e.target.result.replace(/</g, "&lt;").replace(/>/g, "&gt;");
        }
        reader.readAsURL(file);
    }

    // Sets up dataTransfer event
    jQuery.event.props.push('dataTransfer');

    // Bind drop to drop zone
    $('#drop-files').bind('drop', function(e) {
        // Prevents element from default function
        e.preventDefault();
        // Grabs list of files
        var files = e.dataTransfer.files;
        // Loop through files...
        $.each(files, function(index, file) {
            processFile(files[index]);
        });
    });
});

我真的不确定我在哪里搞砸了......最终我会将它推送到我自己选择的上传页面......但现在我想至少获得第一个文件的Base64代码来显示在该文本区域(“fileInfo”)中。

在这里欣赏任何想法...

4

2 回答 2

2

o表示jQuery对象,您无法访问其上的DOM对象属性innerHTML。调用html( )o或使用DOM.indexer

改变

o.innerHTML = e.target.result.replace(/</g, "&lt;").replace(/>/g, "&gt;");

o.html(e.target.result.replace(/</g, "&lt;").replace(/>/g, "&gt;");)

或者

o[0].innerHTML = e.target.result.replace(/</g, "&lt;").replace(/>/g, "&gt;");
于 2013-03-11T06:36:44.040 回答
0

我才明白发生了什么...

该行:

reader.readAsURL(file);

应该读:

reader.readAsURLData(file);

摇我的头

但是我现在发现了另一个小问题,稍后我将发布...

谢谢你的努力...

于 2013-03-13T00:30:14.730 回答