В помощь веб-разработчику

April 14th, 2007

Firefox extension - чтение файла по кускам

Posted by admin in

Уже два дня не могу подебить…
Вобщем задача свелась к тому, чтобы читать средствами Firefox extension файл с локального диска пользователя. Но не просто читать целиком, а кусочно со сдвигом. И не текстовые файлы, а бинарные.
Так вот проблема в том, что у меня никак не получается читать наприпер перые 20 килобайт из файла и засовывать их в stream. То есть почему-то вообще нет такой возможности (или я не могу найти, перерыл весь xulplanet - не нашёл).
Делаю так:

        fileStream = FileInputStream();
        fileStream.QueryInterface(Components.interfaces.nsISeekableStream);
        fileStream.init(this.dFile, 1, 1, fileStream.CLOSE_ON_EOF);
        

далее надо прочитать кусочек с файла и заслать его на сервер средствами XMLHttpRequest.
Всё помещается в multiplexStream и отправляется. Но так работает только если засылать вообще весь файл. Или кусочно, если файл текстовый (используя nsIScriptableInputStream, читая 20 килобайт, затем кладём в nsIStringInputStream и потом в multiplexStream). 

Как сделать чтение бинароного файла? :) seek - работает, а вот чтение именно первых (последующих) Н кб… нет

Leave a reply

You must be logged in to post a comment.