2014-09-24 8 views
0

У меня есть файл generate_xls.php и создается файл .xls и вы хотите сохранить его в папке. Теперь нужно загрузить файл. У меня есть следующие:Создайте файл xls и сохраните его в папку

header("Content-type: application/vnd.ms-excel"); 
header("Content-Disposition: attachment;Filename=ocorrencias.xls"); 

echo "write in file xls"; 

Файл создается как хорошо, но то, что я хочу, чтобы сохранить файл в папку на моем сервере, не скачивая его. Есть ли какие-либо изменения в header?

+1

Почему вы не пишете и не сохраняете файл напрямую с php? т. е. использовать 'file_put_contents ('file.xls', $ data)'. Вам не нужно отправлять заголовки, если файл не загружается. –

+0

@ialarmedalien, и это стирает то, что мы уже имеем и вставляем? –

+0

Если у вас уже есть файл 'file.xls', да, но вы бы сделали какой-то чек и попросите свой файл чем-то другим, если вы не хотите, чтобы он перезаписывал существующий файл. –

ответ

1

HTTP-заголовки являются частью HTTP-запросов и ответов, которые отправляются при общении по сети. Они содержат информацию о клиенте, сервере, отправляемой информации и т. Д.

Если скрипт создает файл и отправляет его клиенту, скрипт должен создать соответствующие заголовки, чтобы уведомить клиента о том, какой тип файла (Content-type: application/vnd.ms-excel), загрузить ли он напрямую (Content-Disposition: attachment) или просмотреть его в веб-браузер и т. д.

Если сценарий создает файл и сохраняет его на сервере (например, с использованием file_put_contents($file_name, $data)), то заголовки не должны устанавливаться, поскольку файл не отправляется по сети. Если кто-то впоследствии хочет загрузить файл, например. используя FTP-клиент или используя другой скрипт, этот скрипт или FTP-программа на сервере будет устанавливать соответствующие заголовки при передаче.