Помогите понять этот файл загрузки кода PHP

Я хочу загрузить файл документа, расположенный по адресу http://confluence.rogersdigitalmedia.com/exportword?pageId=1114407 . Как я могу изменить следующий код, чтобы загрузить файл с этого URL-адреса?

И может кто-то объяснить, что этот код делает в текущем состоянии, что он загружает, файл из каталога?

<?php // place this code inside a php file and call it fe "download.php" $path = $_SERVER['DOCUMENT_ROOT']."/path2file/"; // change the path to fit your websites document structure $fullPath = $path.$_GET['download_file']; if ($fd = fopen ($fullPath, "r")) { $fsize = filesize($fullPath); $path_parts = pathinfo($fullPath); $ext = strtolower($path_parts["extension"]); switch ($ext) { case "pdf": header("Content-type: application/pdf"); // add here more headers for diff. extensions header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\""); // use 'attachment' to force a download break; default; header("Content-type: application/octet-stream"); header("Content-Disposition: filename=\"".$path_parts["basename"]."\""); } header("Content-length: $fsize"); header("Cache-control: private"); //use this to open files directly while(!feof($fd)) { $buffer = fread($fd, 2048); echo $buffer; } } fclose ($fd); exit; // example: place this kind of link into the document where the file download is offered: // <a href="download.php?download_file=some_file.pdf">Download here</a> ?> 

Solutions Collecting From Web of "Помогите понять этот файл загрузки кода PHP"

Этот код должен загружать файлы через PHP. Обычно он используется для скрытия каталога, содержащего загрузки, или для загрузки файлов, которые в противном случае были недоступны, поскольку файлы находятся за пределами корня веб-сайта. Другое использование для такого скрипта – предлагать загрузки для авторизованных пользователей, вам нужно будет поместить проверку подлинности в сценарий.

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

Не используйте этот сценарий «как есть». Он содержит огромную уязвимость безопасности, которая позволяет злоумышленнику просматривать произвольные файлы в вашей системе ( обход траектории ). Заменить строку:

 $fullPath = $path.$_GET['download_file']; 

со следующим, чтобы сделать его более безопасным:

 $fullPath = $path . basename($_GET['download_file']); 

Еще лучше: реализовать «белый список», разрешив имена файлов в разрешенном наборе символов и отклонив другие недопустимые имена файлов.


Загрузка внешнего файла так же просто, как в примере cURL :

 <?php $ch = curl_init("http://www.example.com/"); $fp = fopen("example_homepage.txt", "w"); curl_setopt($ch, CURLOPT_FILE, $fp); curl_setopt($ch, CURLOPT_HEADER, 0); curl_exec($ch); curl_close($ch); fclose($fp); ?> 

Поскольку я не знаю о URL-адресе вашей загрузки, я оставлю исходные URL-адреса и имена файлов из примера PHP.

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