PHP сохранить файл на компьютер пользователя - PullRequest
4 голосов
/ 09 января 2012

У меня есть скрипт, который создает визитную карточку для сотрудников, когда нажимается кнопка «Добавить контакт».У меня есть эта vCard в переменной, но я не совсем уверен, что делать с ней дальше.

Я полагаю, что первым делом я должен сохранить этот файл на сервере?

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

Любые указатели здесь будут оценены.

Спасибо.

Ответы [ 5 ]

7 голосов
/ 09 января 2012

Если вы хотите, чтобы при сохранении URL-адреса экспорта появлялось диалоговое окно «Сохранить файл», вам необходимо использовать

header("Content-type:text/vcard; charset=utf-8");
header("Content-Disposition: attachment; filename=vcardexport.vcf");
echo $vCardData;

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

Также см. https://en.wikipedia.org/wiki/VCard и https://www.ietf.org/rfc/rfc2183.txt

2 голосов
/ 09 января 2012

Если у вас есть vcard в переменной, вы можете легко загрузить ее на клиент с помощью этого кода:

<?php

header('Content-type: text/vcard');
header('Content-disposition: attachment;filename=vcard.vcf');
echo $vcard_variable;

?>
1 голос
/ 09 января 2012

Вы можете просто вывести vCard из PHP, установив правильный тип контента с заголовком ответа. Это должно вызвать загрузку в браузере пользователя. Я прогуглил это и нашел этот пример .

1 голос
/ 09 января 2012

Попробуйте взглянуть на заголовок содержимого содержимого:)

Может принудительно загрузить файл на клиенте:)

0 голосов
/ 09 января 2012

Если у вас есть файл на сервере, вы можете просто указать ссылку на кнопку, которая указывает на файл

<a href="location of the vcard file"><img src="button.jpg"></a>

или вы ищете другой способ доставки?

...