ошибка загрузки файла xlsb с нечитаемым содержимым в ms excel 2007


У меня есть один xlsb. (ms excel 2007) файл создан.

Я загрузил его на сервер, и пользователь веб-сайта может загрузить его, но когда пользователь загружает и открывает этот файл, ms excel выдает сообщение об ошибке "Excel обнаружил нечитаемый контент", когда они нажимают "да", все в порядке. Я не знаю, почему появилась эта ошибка.

Затем я отправил этот файл xlsb из gmail и yahoomail, и при загрузке и открытии все в порядке и никаких сообщений об ошибках.

Поэтому, пожалуйста, помогите мне исправьте эту ошибку. Я использую php в качестве языка на стороне сервера, а код загрузки приведен ниже

header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    //header('Content-type: application/octet-stream');
    //header('Content-type: application/vnd.ms-excel.sheet.binary.macroEnabled.12');

    header('Content-Disposition: attachment; filename="credit-card-payoff.xlsb"');

    readfile('exporting/excel/credit-card-payoff.xlsb');

Я пробовал другой тип контента, но не добился успеха.

Ниже приведена веб-страница, на которой пользователь может загрузить excel

Http://utc.impexdirectory.com/credit-card-payoff-calculator.php

Author: Community, 2013-01-19

1 answers

Я проверил предоставленный вами файл и могу определенно сказать вам, в чем заключается ошибка: каким-то образом текущий веб-сайт также добавляется к этому двоичному файлу. (Если я отключу HTML-часть, файл откроется без диалога восстановления).

Так что мое лучшее предположение на этот счет таково: вы забыли инструкцию exit после чтения файла.

Ваш код должен выглядеть следующим образом:

header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename="credit-card-payoff.xlsb"');

readfile('exporting/excel/credit-card-payoff.xlsb');
exit(0); // Terminate the program execution at this point

Это предотвращает добавление веб-сайта в файл загрузки.

 1
Author: GeneSys, 2013-01-24 12:26:34