Скачать файл из интернета на сервер
Данный вариант будет работать, если в php.ini, параметр allow_url_fopen равен 1 .
$img_url = 'http://site.ru/images/image.jpg'; # 1-ый способ copy($img_url, 'uploads/image.jpg'); # 2-ой способ (скачивание картинки) $file = file_get_contents($img_url); file_put_contents('path/to/save/image.jpg', $file);
2-ой способ: cURL
$fp = fopen('image.png', 'w'); // создание файла $ch = curl_init('http://example.com/image.png'); curl_setopt($ch, CURLOPT_FILE, $fp); // запись в файл curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, false); curl_exec($ch);
Обновлено: 01 ноября 2020
Комментарии
Авторизуйтесь, чтобы добавлять комментарии
- Создание файла и папки
- Добавить строку в файл
- Вывести содержимое файла
- Проверить файл на существование
- Изменить строку в файле
- Удалить файл
- Переименовать или переместить файл или папку
- Копировать файл
- Вывести содержимое в папке
- Создать символическую ссылку
- Скачать файл из интернета на сервер
- Соединить текстовые файлы в один файл
- Скачать файл на сервере
- Чтение XML
- Работа с JSON
- Передать в JavaScript данные в формате JSON
- Работа с CSV
- Вывод данных с Excel-файла
- Хеш файла
Получение PHP
Этот раздел содержит информацию о том, где получить PHP и вопросы, касающиеся OC.
- Где я могу взять PHP?
- Доступны ли прекомпилированная бинарная версия?
- Где я могу достать библиотеки, необходимые для компиляции некоторых дополнительных модулей PHP?
- Как подключить эти библиотеки?
- Я скачал последнюю версию исходных кодов PHP из Git-репозитория на мою машину Windows, как мне их скомпилировать?
- Где найти файл совместимости браузеров ?
- Что означает потокобезопасность при загрузке 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.
User Contributed Notes
There are no user contributed notes for this page.
- ЧАВО
- Общая информация
- Списки рассылки
- Получение PHP
- Вопросы по базам данных
- Установка
- Проблемы сборки
- Использование PHP
- Хеширование паролей
- PHP и HTML
- PHP и COM
- Разные вопросы
- Copyright © 2001-2024 The PHP Group
- My PHP.net
- Contact
- Other PHP.net sites
- Privacy policy
Загрузка файла с сервера
Помигите организовать загрузку файла. Что я только не перпробывал, но браузер настойчиво пытается открыть файл, а не скачать.
Отслеживать
141 1 1 золотой знак 2 2 серебряных знака 9 9 бронзовых знаков
задан 16 июл 2012 в 10:47
alexxxer1234 alexxxer1234
73 1 1 золотой знак 2 2 серебряных знака 11 11 бронзовых знаков
16 июл 2012 в 10:49вы о header(‘Location: ‘.$fileName)? как ни странно редирект не работает вообще. Тоесть игнорируется абсолютно, как будто там его и нет. header(‘Location: ya.ru’) -даже на это ноль эмоций..
16 июл 2012 в 11:04
Вообще-то не редирект, а указание типа файла, чтобы отдать его на скачку.
16 июл 2012 в 11:402 ответа 2
Сортировка: Сброс на вариант по умолчанию
$file = '/path/to/file.jpg'; header('Content-Type: image/jpeg'); header('Content-Disposition: attachment; filename="file.jpg"'); readfile($file);Имя файла и Content-type указываете для своего конкретного файла.
Отслеживать
ответ дан 16 июл 2012 в 12:49
125 7 7 бронзовых знаков$file_name=$myrow['file']; header("Content-Length: ".filesize($file_name)); header("Content-Disposition: attachment; filename=".$file_name); header("Content-Type: application/x-force-download; name=\"".$file_name."\""); dfile($file_name);качает файлы любого расширения
Отслеживать
ответ дан 19 июл 2012 в 5:19
51 5 5 бронзовых знаков-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.3.8.5973
Скачивание файлов 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");