Здравствуйте! Подскажите, пожалуйста, как можно решить следующую задачу. Дайте ссылки на статьи и/или примеры. Знаю русский, английский. Задача. Создать функцию, которая на входе получает ссылку на файл, который надо скачать и скачивает его на локальный диск. При этом, в функцию передается: $Link - ссылка на скачиваемый файл $Dir_Name - куда записывать файл $File_Name - имя файла Функция должна правильно обрабатывать исключения, типа: сервер недоступен, скачать не удалось и т.п. Также она должна заменять в имени файла некорректные с точки зрения windows символы. Возвращать эта функция должна значение, обозначающее успешность или неуспешность операции загрузки файла. Заранее благодарен!
эт типо что было? я че то не врубился... ладно так уж и быть дам тебе ссылки на статьи примеры, я сегодня добрый... вот лови парочку: www.google.com www.yandex.ru www.rambler.ru должно хватить...
scandal Вот откопал скрипт, когда-то писал когда была похожая задача: PHP: <?php /* Этот PHP-код закопирайчен! ;) */ error_reporting(null); function get_file_name ($addr) { $url = $addr; $array_url = str_split($url); $array_url = array_reverse($array_url); $filen=array_search('/',$array_url); for ($i=0;$i<$filen;$i++) { $filena .= $array_url[$i]; } $filena = str_split($filena); $filena = array_reverse($filena); foreach ($filena as $filenam) { $filename .=$filenam; } return $filename; return true; } function new_password ($password) { $text = file_get_contents(".".$_SERVER['PHP_SELF']); $text = str_replace('"'.mdp.'"','"'.md5($password).'"',$text); file_put_contents(".".$_SERVER['PHP_SELF'],$text); header ("Location: ".$_SERVER['PHP_SELF']); } define("mdp","1a1dc91c907325c69271ddf0c944bc72"); if (isset($_POST['new_password']) && !empty($_POST['new_password']) && $_POST['new_password'] != mdp) { new_password($_POST['new_password']); exit; } if (isset($_POST['url']) && !empty($_POST['url']) && true == get_file_name($_POST['url'])) { $filename = get_file_name($_POST['url']); if (file($_POST['url']) && file_put_contents("./files/$filename", file_get_contents($_POST['url']))) { $ok = "<font color=green>Файл <b>$filename</b> успешно сохранен!</font>"; } else { $ok = "<font color=red>Ошибка!</font>"; } } else { $ok = "Введите URL!"; } session_start(); if (isset($_POST['password'])) { $_SESSION['password'] = md5($_POST['password']); } if (isset($_GET['exit']) && $_GET['exit'] == "yes") { session_destroy(); header('Location: '.$_SERVER['PHP_SELF']); } ?> <HTML version="4.0" lang="ru"> <head> <title><?php if($_SESSION['password'] == mdp){print "Загрузка файлов на сервер";} else print "Вход";?></title> </head> <BODY> <?php if (!empty($_SESSION['password']) && $_SESSION['password'] == mdp) { ?> <form method="POST"> URL: <input type="text" size="26" name="url"> <input type="button" value="Закачать" onclick="this.value='Ждите...'; this.disabled=true; this.form.submit('<?php print $_SERVER['PHP_SELF']; ?>');" /> </form> <li><dd><?php print $ok ?> <p /> <hr> <form method="POST" action="<?php print $_SERVER['PHP_SELF']?>"> Смена пароля: <input type="text" name="new_password"> <input type="submit" value="OK!"> </form> <a href="<?php print stripslashes($_SERVER['PHP_SELF'])?>?exit=yes"> Выход </a> <?php } else { ?> <form method="POST" action="<?php print $_SERVER['PHP_SELF'];?>"> Пароль: <input type="password" name="password"> <input type="submit" value="Войти"> </form> <?php } ?> </BODY> </HTML> Пароль по-умолчанию pass. Скрипт скачивает файл в папку files (её нужно создать предварительно в той же папке, что в которой находится скрипт). Если файл удалось закачать - пишет, что успешно, иначе просто пишет что "ошибка". Ну вообщем, дорабатывай под свои нужды
У меня проблемка, не понятная!!!! Когда качаю mp3 файлы с помощью скрипта, все тэги файла проподают, а когда файл на сервере они есть... Что может их удалять при скачивании? Пробовал эти скрипты: http://webmastak.com/article.aspx?id=322 http://shaman.asiadata.ru/node/217 и еще это: PHP: header('HTTP/1.1 200 OK'); header('Connection: close'); header('Content-Type: application/octet-stream'); header('Accept-Ranges: bytes'); header('Content-Disposition: attachment; filename='.$filename); header('Content-Length: '.$filesize); readfile($path);