Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как динамически открыть файл *.vcf с сервера?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
XelaNimed
Отправлено: 10 Сентября, 2009 - 10:21:24
Post Id


Частый гость


Покинул форум
Сообщений всего: 136
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




Всем доброго времени суток!

Подскажите, пожалуйста, как динамически открыть файл с расширением .vcf(vCard)?
Имеется форма, после заполнения которой, идет обновление БД, затем обновление самого .vcf, находящегося на сервере. После этих "плясок" необходимо открыть vCard.
Вопрос: как это сделать?
 
 Top
Champion Супермодератор
Отправлено: 10 Сентября, 2009 - 10:30:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




А что означает "открыть файл динамически"?
 
 Top
XelaNimed
Отправлено: 10 Сентября, 2009 - 10:49:58
Post Id


Частый гость


Покинул форум
Сообщений всего: 136
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




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

(Отредактировано автором: 15 Сентября, 2009 - 14:11:29)

 
 Top
Champion Супермодератор
Отправлено: 10 Сентября, 2009 - 10:57:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




ну это... if(определенное_условие) fopen('file.vcf', 'r') ?
 
 Top
XelaNimed
Отправлено: 10 Сентября, 2009 - 11:01:29
Post Id


Частый гость


Покинул форум
Сообщений всего: 136
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




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

Если по ссылке, то он открывается без проблем. Проблема в том, что мне (точнее наставнику) нужно сперва внести данные с формы в БД, затем создать файл *.vcf, и уж только потом открыть .vcf.

Пробовал вот так вставлять в PHP-Code:

CODE (text):
скопировать код в буфер обмена
  1. <script>javascript:window.location='http://example.domain_name</script>


осталось найти способ запустить это в фоне, а не перепрыгивать по ссылке. Может кто подскажет?

(Отредактировано автором: 10 Сентября, 2009 - 12:45:17)

 
 Top
XelaNimed
Отправлено: 11 Сентября, 2009 - 11:18:41
Post Id


Частый гость


Покинул форум
Сообщений всего: 136
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




Пробовал с Pop-Up окном, фигня получается... Неужели нет в PHP функции, которая просто "отсылает" файл с сервера пользователю?! Мне единственно что надо, при определенном условии отослать файл пользователю.
А можно-ли реализовать сие с посредством header()? Если да, то какие особенности необходимо учитывать?!
 
 Top
Ch_chov
Отправлено: 11 Сентября, 2009 - 11:57:50
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Можно через header отправить заголовок Content-Type: text/x-vcard, а затем сам файл.
(Добавление)
http://forum.php.su/topic.php?fo...topic=11&p=1
 
 Top
XelaNimed
Отправлено: 11 Сентября, 2009 - 12:41:58
Post Id


Частый гость


Покинул форум
Сообщений всего: 136
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




Я пробовал так:
PHP:
скопировать код в буфер обмена
  1. header('Content-Type: text/x-vCard; name="'.$file_name.'"');
  2. header('Content-Disposition: attachment; filename="'.$file_name.'"');
  3. header('Content-Length: '.filesize($file_name));
  4. header('Connection: close');
  5. readfile($file_name);

и так:
PHP:
скопировать код в буфер обмена
  1. if(isset($_SERVER['HTTP_USER_AGENT']) and strpos($_SERVER['HTTP_USER_AGENT'],'MSIE'))
  2.    header('Content-Type: application/force-download');
  3.  else
  4.    header('Content-Type: application/octet-stream');
  5.  
  6.  header('Accept-Ranges: bytes');
  7.  header('Content-Length: '.strlen($file_name));
  8.  header('Content-disposition: attachment; filename="'.$vcard_name.'.vcf"');
  9.  readfile($file_name);


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

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

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

(Отредактировано автором: 11 Сентября, 2009 - 13:48:22)

 
 Top
Champion Супермодератор
Отправлено: 11 Сентября, 2009 - 13:22:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Может я не заметил, но заголовок ты шлешь, а сам файл нет)
 
 Top
XelaNimed
Отправлено: 11 Сентября, 2009 - 13:30:38
Post Id


Частый гость


Покинул форум
Сообщений всего: 136
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




Champion,
путь к файлу в $file_name. Или header() какой-то особенный нужен?!


внутри HTML то содержимое VCF присутствует

(Отредактировано автором: 11 Сентября, 2009 - 13:34:01)

 
 Top
Champion Супермодератор
Отправлено: 11 Сентября, 2009 - 13:32:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




нужно еще readfile этот файл)
 
 Top
XelaNimed
Отправлено: 11 Сентября, 2009 - 13:37:18
Post Id


Частый гость


Покинул форум
Сообщений всего: 136
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




Champion,
извиняюсь... исправил
добавил
 
 Top
XelaNimed
Отправлено: 14 Сентября, 2009 - 07:19:43
Post Id


Частый гость


Покинул форум
Сообщений всего: 136
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




Не знаю как должно выглядеть это в оригинале, но мне пришлось в PHP-код вставлять <iframe>, где в SRC прописан путь к файлу, который нужно отдать. Сдается мне, что по-другому должно все это выглядеть.

PHP:
скопировать код в буфер обмена
  1. <? if ( условие )
  2.          { ?> <iframe src="<? echo("$путь_к_файлу") ?>" width="1"
  3.                height="1" frameborder="0"></iframe>
  4.     <? } ?>
 
 Top
movEAX
Отправлено: 14 Сентября, 2009 - 07:58:29
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)






-----
армия.. самое убогое место
 
 Top
XelaNimed
Отправлено: 14 Сентября, 2009 - 08:34:56
Post Id


Частый гость


Покинул форум
Сообщений всего: 136
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




movEAX,

большое спасибо... но у меня проблема не с созданием vCard. (PHP vCard class v2.0 уже встречал на просторах "инета", да и классы я пока не использую, считаю, что с начала нужно язык выучить, да понять всё досконально). С header-заголовками тоже "морока" получается. Я искал способ, при котором можно было-бы при условии открыть файл.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB