javascript — отправка скриншотов вкладок на удаленный сервер из аддона Firefox

У меня есть аддон Firefox (созданный с использованием аддона Firefox SDK), который при получении инструкции делает снимок экрана текущей активной вкладки и отправляет ее в виде запроса AJAX на удаленный сервер.

Следующий код в addon-script main.js отвечает за получение эскиза

var tab_image_data=tabs.activeTab.getThumbnail();
var tab_image_data = base64.encode(tab_image_data);
panel.port.emit("screenshot",{image_data:tab_image_data});

Данные изображения, сгенерированные функцией getThumbnail (), отправляются в файл сценария содержимого, принадлежащий панели.

В скрипте содержимого следующий код отвечает за отправку данных изображения на сервер.

var tab_image_data=addonmessage.image_data;
var myBlob = new Blob([tab_image_data], { "type" : "text/base64data"} );
var formData = new FormData();
formData.append('img',myBlob);
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://xyz.abc.com/imageshot/index.php", true);
xhr.onload = function() {
if (xhr.status == 200) {
console.log('all done: sq');
} else {
console.log('Nope');
}
};
xhr.send(formData);

Все отлично работает, и файл изображения создается на сервере в формате JPEG. Но когда я пытаюсь просмотреть это изображение, программа просмотра фотографий Windows выдает ошибку не поддерживаемого формата файла.

Я пытался кодировать данные base64 перед отправкой, но это не сработало. Удивительно, но у меня есть расширение Chrome, которое выполняет аналогичную функцию и работает безупречно. В обоих случаях один и тот же скрипт php используется на стороне сервера.

Любая помощь по этому вопросу будет высоко оценена

Заранее спасибо.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]