Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Download файла через HTTPS в IE, в чём отличие http от https ? 
V
    Опции темы
Xena
Дата 27.3.2005, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 17.2.2005

Репутация: 1
Всего: 1



С разрешения IZ@TOP создаю тему заново, постарался максимально просто переформулировать задачу.

Клиент используя IE соединяется с сервером через https. После всевозможных аутонтификаций клиенту предлагается страница со списком url вида:
https://www.server.ru/user_n/file.zip
Как сделать так, чтобы клиент не нажимал все эти 20, 30, 100 ссылок по очереди, а например, указав папку на локальном диске перекачал бы все эти файлы за раз.
Вот такой пример:
Код

<?
  // открыли соединение
  $so = fsockopen("php.spb.ru", 80, &$errno, &$errstr, 30);
  // послали GET форму (простой URL + указание вирт. хоста)
  fputs($so,"GET /files/notepad.exe HTTP/1.0\nHOST: php.spb.ru\n\n");
  // читаем все, пока не наступит "конец заголовка" (т.е. начало документа)
  // если наступит, то со след. байта начнется документ
  while(fgets($so,2048)!="\r\n" && !feof($so));
  unset($buf);
  // читаем документ в переменную
  while(!feof($so)) $buf.=fread($so,2048);
// Готово. В переменной $buf храниться скаченный документ (т.е. файл)
  // Максимум можно читать порциями по 64K-1байт
  // закрываем сокет
  fclose($so);
  echo "Download fine, size ".strlen($buf)." bytes."; flush();
  // используем скаченный файл (в переменной) по назначению...
  $f=fopen("download.tmp","wb+");
  fwrite($f,$buf,strlen($buf));
  fclose($f);
?>

позволяет это сделать через HTTP, мне нужно тоже самое только через HTTPS!
Уже месяц не могу разобраться как это сделать программно - ведь через IE в ручном режиме всё это легко получается, как же сделать всё тоже самое используя РНР??? Может быть нужен другой синтаксис для
Код

 fputs($so,"GET /files/notepad.exe HTTP/1.0\nHOST: php.spb.ru\n\n");
Но какой???
Заранее спасибо!


PM MAIL   Вверх
Xena
Дата 29.3.2005, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 17.2.2005

Репутация: 1
Всего: 1



Слава Будде!!!! smile

Дорогой IZ@TOP!
Благодаря твоей косвеной помощи (поиск в мануале implode вывёл меня окольными путями на нужную дорожку), я наконец-то нашёл ответ!
Все темы можно закрывать!

Задача решается так:

Всё дело в cURL!
Либо прикрутить его к PHP, либо использовать из командной строки.
в мануале всё подробно расписано, дистрибутивы здесь: http://curl.haxx.se/
Всем спасибо!!!!

Это сообщение отредактировал(а) Xena - 29.3.2005, 09:45
PM MAIL   Вверх
IZ@TOP
Дата 29.3.2005, 07:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Xena, как на счет примерчика?


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Xena
Дата 29.3.2005, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 17.2.2005

Репутация: 1
Всего: 1



Прмерчик сделаем.
На самом деле там всё "интуитивно понятно".
Точнее ничего не понятно, так как всю работу делает cURL и нужно лишь правильно его установить и подавать ему нужные параметры.
Значит, как гласит описание cURL нужно делать так:
в коммандной строке задаём (например):
Код


>C:\cURL\curl https://www.myserver.ru/myDocs/myzip.zip > myzip.zip

После выполнения этой комманды если всё настроено правильно CURL скачает файло и выдаст в консоль информацию об этом процессе.
Эту комманду можно выполнять и из под РНР и т.п.

Но есть и другой вариант, если в приведённом мной ранее примере для download через HTTP изменить 3-ю строчку на
Код

 $so = fsockopen("ssl://".$nSrv, 443, $errno, $errstr, 30);

где в переменной $nSrv записанно имя сервера
То, по идее, тоже всё должно работать. В общем эксперементируйте!
Удачи!

Это сообщение отредактировал(а) Xena - 20.4.2005, 18:24
PM MAIL   Вверх
Xena
Дата 20.4.2005, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 17.2.2005

Репутация: 1
Всего: 1



Если что непонятно, пишите письма.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1260 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.