2014-12-17 2 views
2

Я использую ajax для вызова php-файла, передающего данные, которые я хочу записать в файл Excel. Я не хочу сохранять файл Excel на сервере, но хочу использовать $ objWriter-> save ('php: // output'); (часть PHPExcel), чтобы открыть его в браузере.PHPExcel открыть файл Excel с помощью ajax-вызова

Если я копирую вызов сценария ajax в свой браузер (вне моего веб-приложения), браузер создает файл, и браузер дает пользователю возможность открывать/сохранять его.

Но ... когда я запускаю его через вызов ajax в своем веб-приложении, ничего не появляется.

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

Есть ли способ выполнить это с помощью ajax, php и PHPExcel? Есть ли способ открыть файл как часть инструкции $ objWriter-> save ('php: // output')?

+0

Возможно, было бы полезно, если бы вы разместили (соответствующий) код, который вы используете. –

+0

Ваш вызов Ajax должен обрабатывать потоковый двоичный ответ, если вы хотите сделать это через Ajax; гораздо проще просто использовать ссылку для загрузки –

+0

. Используя ссылку, это не значит, что я должен сначала сохранить файл на сервере, а затем позволить человеку щелкнуть ссылку, чтобы перейти к файлу (если только я не недоразумение, что вы имеете в виду)? Поскольку несколько человек могут использовать это приложение и создавать немало файлов Excel, я не хотел создавать файлы на сервере, иначе мне пришлось бы работать над какой-то процедурой очистки, чтобы очищать файлы. – user3861284

ответ

0

Ну, я обошел проблему ... вместо вызова сценария с использованием вызова ajax, я сделал window.open и использовал вызов сценария, который я использовал для вызова ajax в качестве входа. Поэтому он временно открывает окно, которое в свою очередь вызывает скрипт php (передавая все параметры). После создания файла Excel окно закрывается, но файл браузера отображается для пользователя. Таким образом, за исключением того, что окно временно мигает, конечным результатом является то, что изначально было желательным.

Смежные вопросы