сохранить файл на рабочем столе пользователя - PullRequest
0 голосов
/ 12 июня 2009

У меня есть файл, в котором я могу сгенерировать pdf, но я хочу, чтобы путь был рабочим столом пользователя, который сохранял бы его автоматически.

$pdf->Output("sample.pdf");

Каким должен быть путь.

Ответы [ 4 ]

3 голосов
/ 12 июня 2009

Независимо от того, какая у вас серверная часть, вы не сможете автоматически сохранять файл в системе пользователя через их браузер без какого-либо взаимодействия с ним, поскольку это будет серьезной дырой в безопасности. Пользователь всегда должен будет подтвердить сохранение файла.

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

1 голос
/ 12 июня 2009

Предполагая, что ваш php-скрипт работает как клиентское приложение через интерфейс командной строки или PHP-GTK, вы должны сначала проверить, действительно ли система, на которой он работает, является машиной типа Win32.

Далее вам нужно будет использовать Windows Only Extensions , чтобы вызвать собственный вызов функции Win32 API, возвращающий известное местоположение, такое как папка рабочего стола пользователя, то есть SHGetFolderPath() с CSIDL_DESKTOP в качестве второго параметра.

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

1 голос
/ 12 июня 2009

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

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

0 голосов
/ 12 июня 2009

Вы должны вывести PDF в браузер и предоставить соответствующие заголовки, чтобы файл был распознан как PDF (или просто как загружаемый для принудительной загрузки). Также убедитесь, что вы не выводите ничего, кроме PDF, поскольку это может повредить файл.

РЕДАКТИРОВАТЬ: обратите внимание, что если вы используете веб-браузер, по соображениям безопасности невозможно автоматически принудительно загрузить. Вы можете только запросить загрузку, но не активировать ее.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...