[сеть, интернет] авторизация на сайте и скачивание файла
InnI
Признаться, я не вижу связи между вашим намёком и моими словами.
Постараюсь объяснить мои слова.
IMHO если вы пишите скрипт для автоматизации программ связанных с определённой областью (в частности WEB), то будет очень кстати (хотя бы поверхностно) проштудировать DHTML, PHP, JScript, ASP и т.д. Да это муторно и долго, но так устроен мир, только негативное в нём получается быстро, позитивное же рождается мучительно и долго. Поэтому, если вы не готовы долго и мучительно идти к поставленной цели, то лучшим вариантом будет обратиться в стол заказов.
За всем новым не гонюсь в принципе, потому, что в старом нахожу для себя ещё много полезного и интересного.
Хотелось бы услышать ваши мысли по поводу вот этого предложения.
dbs[?]
§
InnI
Признаться, я не вижу связи между вашим намёком и моими словами.
Постараюсь объяснить мои слова.
IMHO если вы пишите скрипт для автоматизации программ связанных с определённой областью (в частности WEB), то будет очень кстати (хотя бы поверхностно) проштудировать DHTML, PHP, JScript, ASP и т.д. Да это муторно и долго, но так устроен мир, только негативное в нём получается быстро, позитивное же рождается мучительно и долго. Поэтому, если вы не готовы долго и мучительно идти к поставленной цели, то лучшим вариантом будет обратиться в стол заказов.
За всем новым не гонюсь в принципе, потому, что в старом нахожу для себя ещё много полезного и интересного.
Хотелось бы услышать ваши мысли по поводу вот этого предложения.
dbs[?]
Загрузка одного файла
Если всё, что нужно — это загрузка одного файла, нам подойдёт следующая конструкция:
Отдача файла через браузер без показа его места хранения с возможностью докачки и регулирования скорости
$realFilePath = dirname( __FILE__ ) . '/file.zip';//Полный путь к отдаваемому файлу
Этот метод очень похож на Drupal и иже с ним:
$CargaDes = new CargaDes;
$client_d = new ClientD($realFilePath);
//Не обязательные аргументы
$client_d->erroff = false;//True отключает вывод ошибок
$client_d->lang = 'ru';
$client_d->speed = 25;// это скорость отдачи в kB, если 0 то не используется;
Я добавил еще отдачу с помощью Apache, но должна быть включена директива XSendFile On
. Загрузка с сайта только файлов определённого типа
Для того, чтобы загрузить с сайта только файлы определённого типа, можно воспользоваться параметрами
-r -A
$ wget -r -A.txt Website_url
. Пропуск файлов определённого типа
Если вы хотите скопировать целый веб-сайт, но при этом вам не нужны файлы определённого типа, отключить их загрузку можно с помощью параметра
--reject
$ wget --reject=png Website_url
. Загрузка с использованием собственного .log-файла
Для того, чтобы загрузить файл и использовать при этом собственный
.log
-файл, воспользуйтесь параметром
-o
и укажите имя файла журнала:
Загрузка файла и сохранение его с новым именем
Если мы хотим сохранить загруженный файл под именем, отличающимся от его исходного имени, нам пригодится команда
wget
с параметром
-O
Ограничение скорости загрузки файлов
При необходимости скорость загрузки файлов с помощью
wget
можно ограничить. В результате эта операция не будет занимать весь доступный канал передачи данных и не повлияет на другие процессы, связанные с сетью. Сделать это можно, используя параметр
--limit-rate
и указав ограничение скорости, выраженное в байтах (в виде обычного числа), килобайтах (добавив после числа
K
) или мегабайтах (
M
) в секунду:
Завершение прерванной загрузки
Если в ходе загрузки файлов эта операция была прервана, можно возобновить загрузку с помощью параметра
-c
команды
wget
Фоновая загрузка файла
Если вы загружаете файл огромного размера и хотите выполнять эту операцию в фоне, сделать это можно, используя параметр
-b
Загрузка нескольких файлов
Если имеется список URL файлов, которые надо загрузить, но вам не хочется вручную запускать загрузки этих файлов, можно использовать параметр
-I
. Однако, перед тем, как начинать загрузку, нужно создать файл, содержащий все адреса. Например, сделать это можно такой командой:
$ vi url.txt
В этот файл нужно поместить адреса — по одному в каждой строке. Далее, осталось лишь запустить
wget
, передав этой утилите только что созданный файл со списком загрузок:
$ wget –I url.txt
Выполнение этой команды приведёт к поочерёдной загрузке всех файлов из списка.
Увеличение общего числа попыток загрузки файла
Для того, чтобы настроить число повторных попыток загрузки файла, можно использовать параметр
--tries
Загрузка файлов с FTP-сервера
Команда загрузки файла с анонимного FTP-сервера с помощью
wget
выглядит так:
$ wget FTP-URL
Если для доступа к файлу требуются имя пользователя и пароль, то команда примет такой вид:
Создание локальной копии веб-сайта
Если нужно загрузить содержимое целого веб-сайта, сделать это можно, воспользовавшись параметром
--mirror
Качаем медиа с любого сайта без напряга
Детство. Вкусное и доброе.
Наши дни. Приехал к маме на дачу, на Родину, под вечер
Племяши там, отдыхают, бабушке помогают. Меня увидели, бегут к машине, тянут ручонки, здороваются, как мужики.
-Привет, чижики! Как дела?
-Хорошо! Грядки пропололи, полили все.
-Помогаете бабушке? Не лентяйничаете?
-Да.
-Ну, спрошу у нее.
Обнял маму, чай попили.
-Что, как шпана?
-Да молодцы, помогают.
Выхожу на улицу.
-Федька, Захар!
Прибежали.
-Червей накопайте сегодня и спать пораньше ложитесь. Завтра рано утром на озеро поедем. На карася.
-Урррраааа!
Достал из сарая удочки, нашел снасти. Перебрали вместе.
Мама подошла.
-Серега, если на рыбалку поедете, Володю ( мамин и отцов одноклассник и друг нашей семьи)возьми, а. Болеет, от рака лечится, на машине ездить своей боится, раз сознание за рулем потерял. Слава Богу, обошлось.
-Да возьму, не проблема.
Созвонился, договорились, что в 5 утра заеду за ним.
Утро и мы в путь. Забрали дядю Володю и на озеро. Не туда,куда с дедом ездили, на другое, дядя Володя посоветовал. Да не суть, главное же -РЫБАЛКА.
Солнышко встает. Озеро в дымке, цапли по берегам, утки, с утятками следом, плывут по своим делам, чайки ныряют за рыбой, дерутся, кричат друг на друга.
Через пару часов простая еда, собранная мамой в дорогу, чай сладкий и ароматный с листьями смородины и чабрецом.
А вечером будет жареный со сметаной карась. Клев есть, пусть и карась мелкий, не как давно, раньше. Так всегда кажется.
И довольные, даже СЧАСТЛИВЫЕ, глаза племяшей и дяди Володи.
Все циклично и вкусно в жизни, надо просто этого ЗАХОТЕТЬ и поделиться с близкими. А они передадут дальше.
Улыбаюсь.
Хорошего всем дня! И Золотую Рыбку!
Пруфы есть(чо я не пикабушник что ль).
Предисловие
Раньше я об этом не задумывался и пользовался готовым решением типа от Drupal для отдачи файлов и более мне не надо было. Пока несколько месяцев назад у меня не возникла острая необходимость не только отдавать файлы.
В интернете есть много информации о том как скачивать файлы с сервера и загружать файлы на сервер, а также между серверами. Но нигде нет простого решения которое было бы более ли менее универсально.
Я несколько дней убил на изучение всяких заголовков и вариаций использования cUrl, но собрать все воедино не выходило. Видел много разных подобных классов, но везде было либо частичное решение, либо очень запутанно, либо и то, и другое.
И лишь благодаря единичным статьям, кусочкам информации с форумов и всяким комментариям удалось собрать пазл воедино. Я не утверждаю что мое решение полностью универсально, но очень удобное во многих случаях, хотя это вам решать.
Если у кого-либо возникнет желание улучшить мое решение этого вопроса и хватает знаний в этом направлении, то я буду рад, если вы сделаете какие-либо исправления или добавления к коду который лежит в открытом доступе на GitHub.
А теперь к делу, функции класса CargaDes:
- Отдача файла через браузер без показа его места хранения и с возможностью докачки;
- Загрузка файла на сервер через браузер с индикатором прогресса;
- Скачивание файлов с удаленного сервера на свой сервер с индикатором прогресса;
- Загрузка файлов со своего сервера на удаленный сервер с индикатором прогресса.
Итоги
Wget — довольно простая в использовании, но весьма полезная утилита Linux. И, на самом деле то, о чём мы рассказали — лишь малая часть того, что она умеет. Надеемся, этот обзор поможет тем, кто не был знаком с wget, оценить эту программу, и, возможно, включить её в свой повседневный арсенал инструментов командной строки.
Уважаемые читатели! Пользуетесь ли вы инструментами командной строки Linux для загрузки файлов? Если да — просим о них рассказать.
По итогу хочу сказать
Если этот класс поможет хотя бы одному человеку я буду очень рад этому. Как я уже говорил в начале буду рад конструктивной критике и дополнениям которые могут привести к улучшению класса. Ссылка на CargaDes.class.