moblovсоздал дневник импорт файлов в категории Полезные коды24 Мая 2013 Описание: по сравнению с copy() этот метод переносит большие файлы, даже если время выполнения скрипта маленькое, открывает отдельный процесс, по 2 гига максимум для 32 бит серверов //////////////// SPL аплоад файлов Код: $dir = 'uploads'; if (!is_dir($dir)) { mkdir($dir); } if (isset($_POST['url'])) { $newfile = basename(rtrim($_POST['url'], '/')); $uploadfil = new SplFileObject($_POST['url'], 'rb'); $file = new SplFileObject($dir . DIRECTORY_SEPARATOR . $newfile, 'w'); $file->setFlags(SplFileObject::SKIP_EMPTY); if ($file->flock(LOCK_EX)) { $file->ftruncate(0); while (!$uploadfil->eof()) { $file->fwrite($uploadfil->fgets()); } } $file->flock(LOCK_UN);
if (file_exists($dir . DIRECTORY_SEPARATOR . $newfile)) { echo '<div>Фаил был успешно загружен на сервер</div>' . PHP_EOL; } else { echo '<div>Не удалось скачать файл, ссылка должна указывать прямой путь до файла</div>' . PHP_EOL; }