0

FileReader(Firefox 16.0.2を使用しています)でローカルファイルを読み込もうとすると、奇妙なエラーが発生しました。

[20:57:48.440] reader = new FileReader()
[20:57:48.453] [object FileReader]
--
[20:58:15.104] reader.onload= function(evt) {alert('ok');}
[20:58:15.114] (function (evt) {alert("ok");})
--
[20:58:32.162] reader.readAsText('test.txt');
[20:58:32.170] [Exception... "Could not convert JavaScript argument arg 0 [nsIDOMFileReader.readAsText]"  nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)"  location: "JS frame :: Web Console :: <TOP_LEVEL> :: line 1"  data: no]

それを修正する方法のアイデアはありますか?

4

1 に答える 1

1

FileReaderは、FileまたはBlobパラメーターを取ります。ファイル名に似た文字列ではありません。ファイルは、input type=fileのドラッグアンドドロップアクションから取得されます。

詳細についてはこのhtml5rocksの記事を、画像を読むには以下のコードを参照してください。

$(function () {
        if (Modernizr.draganddrop) {
            var dropTarget = $('#dropTarget').get(0);

            dropTarget.addEventListener('dragover', function (e) {
                e.preventDefault();
            });

            dropTarget.addEventListener('drop', function (e) {
                e.preventDefault();

                if (e.dataTransfer.files === undefined) {
                    // IE doesn't support file drops yet.
                    $('#dropTarget').text('Drag & Drop of files is not supported');
                    return;
                }

                $.each(e.dataTransfer.files, function () {
                    var file = this;
                    var reader = new FileReader();
                    reader.onload = function () {
                        $('<img>')
                            .attr('title', file.name)
                            .attr('src', this.result)
                            .css('width', '75%')
                            .appendTo('#images');
                    };
                    reader.readAsDataURL(file);
                });
            });
        }
        else {
            $('#dropTarget').text('Drag & Drop is not supported');
        }
    });
于 2012-10-28T20:30:55.393 に答える