MIME-тип в файловой системе Api Google Chrome - PullRequest
0 голосов
/ 26 марта 2012

Я разрабатываю расширение для Google Chrome, которое генерирует mp3-файл и сохраняет его в локальном хранилище с помощью API-интерфейса FileSystem.Когда я сохраняю, я указываю тип MIME «application / octec-stream».Позже я отправляю пользователю URL-адрес файла, вместо загрузки файла браузер начинает проигрывать его на проигрывателе html5.Из ответа видно, что возвращенный тип mime был «audio / mp3» в зависимости от расширения файла.Вопрос заключается в следующем: как я могу заставить браузер загружать файл вместо его воспроизведения?Вот небольшой фрагмент того, что я делаю на JavaScript.

 fs.root.getFile(contextData.songInfo.Name + ".mp3", { create: true }, function (fileEntry) {

         // Create a FileWriter object for our FileEntry (log.txt).
         fileEntry.createWriter(function (fileWriter) {

             fileWriter.onwriteend = function (e) {
                 console.log('Write completed.');
             };

             fileWriter.onerror = function (e) {
                 console.log('Write failed: ' + e.toString());
             };

             var bb = new window.WebKitBlobBuilder();
             bb.append(buffer);
             fileWriter.write(bb.getBlob('application/octet-stream'));

             contextData.fileUrl = fileEntry.toURL();

             callback(contextData);

         }, errorHandler);



     }, errorHandler);

1 Ответ

3 голосов
/ 28 марта 2012

Используйте атрибут a[download] и установите для href URL-адрес filesystem:

<a href="filesystem:..." download="FileName">Download it!</a>

Это заставит браузер загружать ресурс, а не переходить к нему :) Более подробное объяснениездесь: http://updates.html5rocks.com/2011/08/Downloading-resources-in-HTML5-a-download

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...