Как скачать php файл с сайта
Перейти к содержимому

Как скачать php файл с сайта

  • автор:

Скачивание файлов php

Скачивание файлов php

Ниже в этой статье вы можете увидеть универсальный скрипт для скачивание файлов на php, но давайте рассмотрим одну проблему и как скрипт её устраняет.

Если этот скрипт покажется вам сложным, советую посмотреть, как на простом примере реализуется скрипт cкачивания изображений и текстовых файлов на php.

Многие пользователи сталкиваются с одной необычной проблемой. К примеру необходимо реализовать скачивания mp3-файлов. С одной стороны, сделать это очень просто: необходимо лишь реализовать скрипт загрузки файлов, который также будет вести подсчет числу скачиваний.

После проверки выясняется, что файлы без проблем скачиваются. Однако вскоре возникает одна проблема: Internet Explorer не спрашивает, скачать файл или просто открыть, а запускает медиа-плеер.

Та же проблема встречается с файлами и других форматов. Пользователям не всегда нужно, чтобы файлы pdf, doc или gif способствовали открытию соответствующих программ. Для решения этой проблемы существует PHP-скрипт, предназначенный для скачивания файлов.

PHP скрипт для скачивания файлов:

 elseif ( ! file_exists( $filename ) ) // проверяем файл на существование < echo "ОШИБКА: данного файла не существует."; exit; >; switch( $file_extension ) < case "pdf": $ctype="application/pdf"; break; case "exe": $ctype="application/octet-stream"; break; case "zip": $ctype="application/zip"; break; case "doc": $ctype="application/msword"; break; case "xls": $ctype="application/vnd.ms-excel"; break; case "ppt": $ctype="application/vnd.ms-powerpoint"; break; case "mp3": $ctype="audio/mp3"; break; case "gif": $ctype="image/gif"; break; case "png": $ctype="image/png"; break; case "jpeg": case "jpg": $ctype="image/jpg"; break; default: $ctype="application/force-download"; >header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: private",false); // нужен для Explorer header("Content-Type: $ctype"); header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" ); header("Content-Transfer-Encoding: binary"); // нужно сделать подсчет размера файла его пути header("Content-Length: ".filesize($filename)); readfile("$filename"); exit(); ?>

Этот скрипт будет делать пользователям запрос, которые смогут выбрать, сохранить тот или иной файл или открыть его. Вам необходимо создать файл dl_save.php, а затем скопировать в него нужный код. Ссылка, которая ведет на скачивание файла, выглядит примерно следующим образом:

Ссылку на скачивания файла оформлять нужно (примерно) так:

При этом file.mp3 – это ваш файл. При необходимости вы можете прописать к нему полный путь. А с помощью редиректа это выглядит так:

header("Location: dl_save.php?filename=file.mp3");

Получение PHP

Этот раздел содержит информацию о том, где получить PHP и вопросы, касающиеся OC.

  1. Где я могу взять PHP?
  2. Доступны ли прекомпилированная бинарная версия?
  3. Где я могу достать библиотеки, необходимые для компиляции некоторых дополнительных модулей PHP?
  4. Как подключить эти библиотеки?
  5. Я скачал последнюю версию исходных кодов PHP из Git-репозитория на мою машину Windows, как мне их скомпилировать?
  6. Где найти файл совместимости браузеров ?
  7. Что означает потокобезопасность при загрузке PHP?

Где я могу взять PHP?

Вы можете скачать PHP с любого сайта из сети сайтов PHP. Сайты сети можно найти на » https://www.php.net/. Вы также можете воспользоваться анонимным Git для получения самой последней версии исходников. За подробностями обращайтесь к » https://www.php.net/git.php.

Доступны ли прекомпилированная бинарная версия?

Мы распространяем прекомпилированные бинарники только для Windows, так как мы не в состоянии компилировать PHP со всеми возможными комбинациями модулей, даже для самых основных платформ Linux/Unix. Также заметьте, что на сегодня многие дистрибутивы Linux поставляются с PHP. Бинарники для Windows можно скачать с нашей страницы » Downloads, для бинарников под Linux, пожалуйста, посетите сайт вашего дистрибутива.

Где я могу достать библиотеки, необходимые для компиляции некоторых дополнительных модулей PHP?

Замечание: Звёздочкой (*) помечены библиотеки, которые исходя из нашего опыта являются потоко-небезопасными; эти библиотеки не рекомендуется использовать в многопоточной среде.

  • » LDAP (Unix).
  • » LDAP (Unix/Win) : Mozilla Directory (LDAP) SDK
  • » бесплатный LDAP сервер.
  • » Berkeley DB2 (Unix/Win) : http://www.sleepycat.com/.
  • » SNMP* (Unix): .
  • » GD (Unix/Win).
  • » mSQL* (Unix).
  • » PostgreSQL (Unix).
  • » IMAP* (Win/Unix).
  • » Sybase-CT* (Linux, libc5) : Available locally.
  • » FreeType (libttf):.
  • » ZLib (Unix/Win32).
  • » expat XML parser (Unix/Win32).
  • » PDFLib.
  • » mcrypt.
  • » mhash.
  • » t1lib.
  • » dmalloc.
  • » aspell.
  • » readline.

Как подключить эти библиотеки?

Вам необходимо следовать инструкциям, сопровождающим библиотеку. При запуске скрипта ‘configure’, некоторые библиотеки (такие как библиотека GD) находятся автоматически, другие должны быть включены с помощью опции ‘ —with-EXTENSION ‘ в ‘ configure ‘. Запустите ‘ configure —help ‘ для получения списка всех опций.

Я скачал последнюю версию исходных кодов PHP из Git-репозитория на мою машину Windows, как мне их скомпилировать?

Изучите раздел руководства, содержащий актуальное » пошаговое руководство по сборке

Где найти файл совместимости браузеров ?

Файл browscap.ini можно скачать с » http://browscap.org/.

Что означает потокобезопасность при загрузке PHP?

Потокобезопасность означает, что данный бинарный файл может работать с многопоточным веб-сервером, например таким, как Apache 2 под Windows. Потокобезопасность обеспечивается хранением локальных копий в каждом потоке, так что данные не вступят в противоречие с другим потокам.

Так что же выбрать? Если вы хотите использовать PHP в качестве бинарного файла CGI, то вам не нужна потокобезопасность, так как бинарный файл будет запускаться при каждом запросе. Для многопоточных веб-серверов, таких как IIS5 и IIS6, вам понадобится поточная версия PHP.

Скачать файл с другого сайта по url и загрузить по ftp

Есть ссылка на файл, хочу его загрузить на другой сервер (не тот, с которого запускаю PHP скрипт) по ftp. Файл из ссылки можно передать в ftp_put() ?

Отслеживать
5,821 3 3 золотых знака 15 15 серебряных знаков 24 24 бронзовых знака
задан 13 июн 2018 в 14:26
7 10 10 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Конечно, например с помощью этой функции:

else < return false; >ftp_put($connection, $remote_file, $local_file, FTP_BINARY); ftp_close($connection); return true; > 
uploadFTP("127.0.0.1", "admin", "mydog123", "C:\\report.txt", "meeting/tuesday/report.txt"); 

Если нужно скачать файл по ссылке — то для этого подойдет функция file_get_contents($url)

file_put_contents("report.txt", fopen("http://someurl/report.txt", 'r')); 

Как скачать файл средствами php?

В общем-то необходимо в коде PHP при срабатывании определённого условия начать скачку файла. Как это можно реализовать?

Под скачкой файла я подразумеваю:
Вывести в браузер посетителя сайта диалоговое окно загрузки файла на его компьютер (или если у него в браузере установлена автоматическая загрузка — загрузить файл на устройство посетителя)

  • Вопрос задан более трёх лет назад
  • 3961 просмотр

6 комментариев

Простой 6 комментариев

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *