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 :: Ссылка на файл расположенный вне сайта
Покинул форум
Сообщений всего: 30
Дата рег-ции: Февр. 2008
Помог: 0 раз(а)
Как сделать на странице сайта ссылку на закачку небольшого файла, который расположен вне корневой root-директории сервера Apache (DocumentRoot). Файл, скажем, расположен где-то в локальной сети. С компьютера, на котором работает сервер Apache, доступ к этому файлу есть. Но как сделать доступ на скачку этого файла из интернета средствами страницы сайта?
Ничего более умного, как предварительно скачать этот файл корень сайта и уже потом дать на него ссылку, мне в голову не приходит. Есть какой-нибудь более гибкий и продвинутый способ решить эту проблему?
----- Нет в русском языке слова дешеГО. Есть слово дешеВО.
DeepVarvar
Отправлено: 13 Октября, 2011 - 17:03:48
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Не понял, если честно. Что такое "ln -s"? Мне тут даже Яндекс не помог. Можно поподробнее?
----- Нет в русском языке слова дешеГО. Есть слово дешеВО.
White
Отправлено: 14 Октября, 2011 - 09:26:28
Частый посетитель
Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011 Откуда: Днепропетровск
Помог: 28 раз(а)
SlavikSG пишет:
С компьютера, на котором работает сервер Apache, доступ к этому файлу есть
а у самого apache к этому файлу доступа нет, если он не в его корневой директории. так что делайте симлинк если не хотите перемещать или копировать файл в корень сайта
Покинул форум
Сообщений всего: 30
Дата рег-ции: Февр. 2008
Помог: 0 раз(а)
White пишет:
...так что делайте симлинк если не хотите перемещать или копировать файл в корень сайта...
Так вот я и не пойму, что такое "симлинк". Покажите на полном живом примере, как этим пользоваться. Как это можно вставить в HTML страницу или в скрипт PHP. Плиииз!
----- Нет в русском языке слова дешеГО. Есть слово дешеВО.
Мелкий
Отправлено: 14 Октября, 2011 - 10:07:17
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Это команда консоли *nix - систем.
Если вы не поняли, что я сказал - ставите любой понравившийся дистрибьютив linux в виртуалку или второй системой.
Заодно, натренируетесь спрашивать поисковики. Yandex, запрос "ln -s", 2-4 результаты выдачи - ответ, что такое ln - дан. "симлинк" - и вовсе первые как минимум 3 результата.
Покинул форум
Сообщений всего: 30
Дата рег-ции: Февр. 2008
Помог: 0 раз(а)
Мелкий пишет:
...ставите любой понравившийся дистрибьютив linux в виртуалку или второй системой.
Нет. Ну, это совсем не выход - ставить на комп виртуальную машину с другой операционной системой, ради одной единственной ссылки на файл.
Мелкий пишет:
Заодно, натренируетесь спрашивать поисковики. Yandex, запрос "ln -s", 2-4 результаты выдачи - ответ, что такое ln...
Именно про Линукс мне Яндекс и ответил. Отчего я и подумал, что это совсем не то, что имел в виду автор того поста. А оказывается именно это он и имел в виду.
Мелкий пишет:
Вариант 2: http://forum.php.su/topic.php?forum=35&topic=11
Внимательно изучил это дело. Тут имеется в виду - отдавать файл клиенту не по ссылке, а по скрипту. Получилось. Работает. Спасибо!
Казалось бы проблема решена. Но вылез один глюк, который как-то вылезал у меня и в другом месте. При работе с моими личными сетевыми ресурсами файловые функции PHP работают очень медленно. С самим PHP это не связано никак. Ведь с ресурсами локального компа, все работает моментально. Куда бы я файл не положил, на любой диск, в любую папку, файл моментально начинает качаться. Но как только я этот же файл кладу в сеть - все!!! Дикие тормоза. Страница думает секунд сорок, затем вылетает ошибка. Жму обновить. Снова немного думает и потом файл начинает не качаться, а загружаться прямо в браузер. Жму выход, снова кликаю на ссылку, и только уже тогда файл начинает закачиваться. В общем, глюк на глюке и глюком погоняет.
Я не спрашиваю - почему. Это уже точно выходит за рамки работы PHP. Скорее всего - это как-то связано с работой моей сети. Хотя на поверку я и не замечаю никаких тормозов. Все летает! Какие-то тормоза в моей сети замечает только PHP.
Обидно!
Вроде бы проблема решена с помощью "отдачи файла по скрипту", а я не могу воспользоваться этим способом.
Еще раз большое спасибо за ответы! Покопаюсь еще. Если не получится, то все же придется, наверное, копировать файл в корень сайта.
----- Нет в русском языке слова дешеГО. Есть слово дешеВО.
Мелкий
Отправлено: 14 Октября, 2011 - 15:31:27
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
SlavikSG пишет:
Нет. Ну, это совсем не выход - ставить на комп виртуальную машину с другой операционной системой, ради одной единственной ссылки на файл.
Это предложение как раз ничего общего с темой не имеет, а целью было лишь намекнуть, что без никсов уважающему себя веб-разработчику никуда.
----- PostgreSQL DBA
SlavikSG
Отправлено: 14 Октября, 2011 - 16:30:32
Новичок
Покинул форум
Сообщений всего: 30
Дата рег-ции: Февр. 2008
Помог: 0 раз(а)
Мелкий пишет:
...без никсов уважающему себя веб-разработчику никуда.
Ну, таким громким словом я себя назвать никак не могу.
Немного программирую, но в других областях. В PHP залезаю лишь по мере необходимости и очень не часто.
Упростил код, выкинув оттуда файловую функцию FileSize().
Собственно проблема почти решена. Тормозит также, но зато уже не выдает никаких ошибок. Подумает-подумает и начинает уверенно качать файл.
Вопрос:
Можно оставить код таким упрощенным? Не вылезет это никаким боком в каком-нибудь браузере? Проверял в обычном ИЕ, в Мозиле, в Google Chrome. Все работает. В Опере еще не проверял.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.