Вот мой php-код, который вызывается, когда пользователь нажимает на ссылку: http://www.example.com/?page=install_my_ext.php:
if ( preg_match("/Firefox/", $_SERVER['HTTP_USER_AGENT']) ) {
// send file
$fname = 'myext.xpi';
// $fname = 'test.pdf';
header('Content-type: application/x-xpinstall');
//header('Content-type: application/pdf');
header("Content-Disposition: inline; filename='$fname'");
header("Content-Transfer-Encoding: binary");
readfile($fname);
}
else {
header("Content-type: text/html\n\n");
echo "Firefox required";
}
Firefox открывает диалоговое окно «Разрешить» и, когда разрешено, сообщает, что надстройка не может быть установлена, поскольку она повреждена.
Когда я устанавливаю надстройку из меню надстройки через «Установить надстройку из файла», моя надстройка отлично устанавливается. Это означает, что есть проблема с передачей файлов.
Когда я отправляю файл PDF с кодом выше (раскомментируя $ fname = ‘test.pdf’ и Content-type = application / pdf), результат в порядке: pdf отображается так, как ожидается.
Где ошибка?
Задача ещё не решена.
Других решений пока нет …