Загрузка файлов на сервер?

Статус
Закрыто для дальнейших ответов.

magistr

Новичок
Регистрация
05.01.2009
Сообщения
1
Здравствуйте! я читал как можно передавать файлы со своего компьютера на сервер, по средствам php! а возможно ли сделать так: что бы можно было указав адрес (url) нужного файла на другом сервере, скачать его себе на сервер?(Добавление)
Пытался использовать данный скрипт:

<?PHP 
$file = 'WWW.****.ru';
$newfile = 'file/namefile';
if (!copy($file, $newfile)) {
echo "не удалось скопировать $file...\n";
}
else
{
$filename = 'test.txt';
$somecontent = "Файл скачен|";
$handle = fopen($filename, 'r+');
fwrite($handle, $somecontent);
}
?>



НО:
После закрытия браузера файл продолжает скачиваться(мне так и надо) но надпись (Файл скачен) не дописывается!!!! как сделать так что бы он дописывалась? или кто нибуть напишет пример такого скрипта с функуией pfsockopen или это не возможно?
 

AlexKozlov

Member
Регистрация
02.02.2009
Сообщения
14
После закрытия браузера файл продолжает скачиваться(мне так и надо) но надпись (Файл скачен) не дописывается!!!! как сделать так что бы он дописывалась? или кто нибуть напишет пример такого скрипта с функуией pfsockopen или это не возможно?
Скорей всего при обрыве соединения (закрытие браузера) скрипт прерывается вебсервером, но операция загрузки файла непрерываемая :)
Поэтому файл докачивается, и скрипт тут же прерывается.

Так что имхо - только через (_._)

Например перед загрузкой файла вы пишите в БД информацию о нем и признак что запущена загрузка
И напрмер при следующем входе на сервер проверяется наличие таких записей и если они есть то проверяется наличие файла на диске и
выполняются какие-то завершающие действия - в вашем случае дописывание чего-то куда-то а запись удаляется
 

trueW3C

Поклонник Yii
Регистрация
04.03.2009
Сообщения
847
Код:
<?php
	$allowed_filetypes = array('.jpg','.gif','.bmp','.png'); // Здесь мы перечисляем допустимые типы файлов
	$max_filesize = 524288; // Максимальный размер загружаемого файла в байтах (в данном случае он равен 0.5 Мб).
	$upload_path = './files/'; // Место, куда будут загружаться файлы (в данном случае это папка 'files').
	$filename = $_FILES['userfile']['name']; // В переменную $filename заносим точное имя файла (включая расширение).
	$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); // В переменную $ext заносим расширение загруженного файла.
	// Сверяем полученное расширение со списком допутимых расширений, которые мы определили в самом начале. Если расширение загруженного файла не входит в список разрешенных, то прерываем выполнение программы и выдаем соответствующее сообщение.
	if(!in_array($ext,$allowed_filetypes))
	die('Данный тип файла не поддерживается.');
	// Теперь проверим размер загруженного файла и если он больше максимально допустимого, то прерываем выполнение программы и выдаем сообщение.
	if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
	die('Фаил слишком большой.');
	// Проверяем, доступна ли на запись папка, определенная нами под загрузку файлов (папка files). Если вдруг недоступна, то выдаем сообщение, что на папку нужно поставить права доступа 777
	if(!is_writable($upload_path))
	die('Невозможно загрузить фаил в папку. Установите права доступа - 777.');
	// Загружаем фаил в указанную папку.
	if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename))
	echo 'Ваш фаил успешно загружен <a href="' . $upload_path . $filename . '">смотреть</a>'; 
	else
	echo 'При загрузке возникли ошибки. Попробуйте ещё раз.';
 ?>
 
Статус
Закрыто для дальнейших ответов.
Верх Низ