PHP файл скачать с символическими ссылками - PullRequest
1 голос
/ 04 декабря 2010

У меня есть куча файлов .tgz, которые доступны через. символьные ссылки. Когда я нажимаю href на моей странице, указывающей на символическую ссылку, она загружает довольно странный файл. Загруженный файл имеет имя символической ссылки, и при открытии архива я получаю (из того, что я могу сказать) двоичный файл, который может быть или не быть содержимым статического файла.

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

Ответы [ 2 ]

3 голосов
/ 04 декабря 2010

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

Но я могу сказать вам это.

PHP в большинстве случаев обрабатывает символические ссылки как файлы, ине обеспечивает плавную обработку файла за ссылкой.

Есть функция php is_link (), которая проверяет, является ли указатель ресурса ссылкой, есть функция readlink (), которая обслуживает файл за ссылкой иесть linkinfo (), которая дает вам информацию о ссылке.

Но, скорее всего, вам нужно явно разрешить Apache или любому серверу, который вы используете, следовать по символическим ссылкам, что может быть связано с директивой Options FollowSymLinks в apache.

1 голос
/ 04 декабря 2010

PHP имеет readlink , что позволяет вам получить путь, на который он нацелен / связан.
Однако, подумайте, что ваша проблема связана с перезаписью apache или абсолютным путем (снова)

PS: Поддерживает ли расширение tgz ваш Apache MIME?

см .: http://www.w3schools.com/media/media_mimeref.asp

...