Как создать программу для загрузки файлов

Недавно захотел написать программу для изучения библиотеки для Python — requests. Мой выбор пал на написание программы для скачивания файлов.

Поскольку мы будем использовать библиотеку requests, импортируем её (+shutil):

import requests, shutil

Код «меню» (это заключено в while True для возможности выхода break’ом и работы программы много раз без перезапуска):

menu = input(«Ready.n») if menu == «get»: #режим загрузки #. if menu == «about»: #о программе #. if menu == «exit»: #выход #.

В get’е спрашиваем путь к файлу: (причём отдельно директорию и имя файла, зачем это нужно — скажу позже):

dirfile = input(«Enter path to the directory with file(no «www.» !):») file = input(«Enter the name of the file:»)

А для requests ведь нужен полный путь! Не беда, склеим dirfile и file:

fullpath = dirfile + file

Иногда, чтобы скачать файл, нужно войти. Это нужно реализовать!
Спросим пользователя об этом:

Как создать Web-Installer, программу установки, для загрузки файлов с сервера(сайта)


reqauthstr = input(«Do you need authentification?[y/n]:») while True: if reqauthstr == «y» or reqauthstr == «Y»: reqauth = True break elif reqauthstr == «n» or reqauthstr == «N»: reqauth = False break else: print(«Incorrect command.»)

Если нужно входить, тогда напишем запрос с аутентификацией. Спрашиваем логин и пароль:

if reqauth == True: user = input(«Login:») passw = input(«Password:»)

Создаём сам get-запрос:

filereq = requests.get(fullpath,stream = True,auth=(user,passw))

И копируем файл (как раз, разделение пригодилось в open`e):

with open(file,»wb») as receive: shutil.copyfileobj(filereq.raw,receive) del filereq

Без аутентификации — практически тоже самое:

elif reqauth == False: filereq = requests.get(fullpath,stream = True) with open(file,»wb») as receive: shutil.copyfileobj(filereq.raw,receive) del filereq

Ну вот, закачку реализовали.

Остальные пункты меню:

if menu == «exit»: break if menu == «about»: print(«»» nxfetch — v0.1.0 Library: requests — v2.6.0 Author: Fedor Sturovn «»») else: print(«Incorrect command.n»)

  • Интернет
  • Python
  • requests
  • скачивание
  • скачивание контента
  • Python 3
  • скачивание файла
  • программирование
  • на
  • программирование на Python 3
  • Python
  • Программирование
Читайте также:
Какие программы открывают gif файлы

Источник: habr.com

Как создать PHP-скрипт для загрузки файлов с помощью jQuery и AJAX

В этой статье я покажу, как добавить на сайт функционал для загрузки файлов с помощью jQuery, AJAX и MySQL.

Базовые настройки

  • PHP 7.1.
  • MySQL.
  • Файл JQuery / Ajax.

Теперь займемся написанием скрипта для загрузки файлов.

Как выгрузить файл на Dropbox и сделать доступным по ссылке для скачивания

СозданиеPHP-скрипта загрузки файлов

  • Создайте HTML-форму загрузки на основе Bootstrap.
  • Создайте Ajax-скрипты для загрузки файлов.
  • Примените проверку безопасности.
  • Создайте PHP-скрипты для обработки данных.

Создание HTML-формы

HTML-форма — это интерфейс, через который пользователь передает данные серверу. Чтобы форма работала с файлами, нужно установить для элемента метод POST.

Еще одним важным атрибутом формы является enctype . Для него нужно установить значение multipart / form-data . А для атрибута type элемента загрузки файлов должно быть установлено значение file.

Создайте файл index.php и добавьте в него приведенный ниже код.

Ajax File Upload with jQuery andPHP

Ajax File Uploading with Database MySql

NAME EMAIL

www.Cloudways.com

Создание HTML-формы

В этой форме я использовал классы Bootstrap, чтобы применить для формы некоторые стили. Я также указал в атрибуте action файл ajaxupload.php .

Использование jQuery и AJAX для загрузки файлов

Для отправки данных и загрузки файлов будет использоваться jQuery и AJAX. Поэтому я начну с подключения библиотеки jQuery.

$(document).ready(function(e)< $(«#form»).on(‘submit’,(function(e)< e.preventDefault(); $.ajax(< url:»ajaxupload.php», type:»POST», data: newFormData(this), contentType:false, cache:false, processData:false, beforeSend:function() < //$(«#preview»).fadeOut(); $(«#err»).fadeOut(); >, success:function(data) < if(data==’invalid’) < // неверный формат файла. $(«#err»).html(«Invalid File !»).fadeIn(); >else < // просмотрзагруженногофайла. $(«#preview»).html(data).fadeIn(); $(«#form»)[0].reset(); >>, error:function(e) < $(«#err»).html(e).fadeIn(); >>); >)); >);

В приведенном выше коде метод $ajax() используется для отправки данных.

Настройка и подключение базы данных MySQL с помощью PHP

Следующим шагом будет настройка базы данных MySQL. Создайте таблицу с именем «uploading» . Поля таблицы: name , email , file_name :

CREATE TABLE`uploading`( `id`int(11)NOTNULLAUTO_INCREMENT, `name`varchar(100)COLLATE utf8_unicode_ci NOTNULL, `email`varchar(100)COLLATE utf8_unicode_ci NOTNULL, `file_name`varchar(100)COLLATE utf8_unicode_ci NOTNULL, PRIMARY KEY(`id`) )ENGINE=InnoDB DEFAULTCHARSET=utf8 COLLATE=utf8_unicode_ci;

Затем создайте файл db.php , предназначенный для соединения базы данных с PHP-приложением. Вставьте в него фрагмент кода, приведенный ниже:

connect_error)< die(«Unable to connect database: «.$db->connect_error); >

Создание PHP-скрипта для загрузки файлов

Когда пользователь взаимодействует с формой, файл загружается во временную папку. При этом вся информация о файле хранится в многомерном массиве $_FILES . Индексом ключа этого массива является атрибут name поля .

Читайте также:
Какие программы нужны для администратора

В нашем случае именем индекса является $_FILES [«image»] . Более подробная информация о загружаемом файле хранится в следующих индексах.

После того, как файл загружен во временную папку, и вся его информация сохранена в массиве, вызывается функция move_uploaded_file() . Она предназначена для перемещения файла из текущего временного местоположения в постоянную директорию. Процесс загрузки файла можно описать следующим образом:

1. Проверяем, возникли ли ошибки при загрузке.

2. Проверяем, разрешен ли тип загружаемого файла.

3. Проверяем, что загружаемый файл имеет допустимый размер.

4. Проверяем, является ли имя загружаемого файла корректным (если имя файла содержит /, это повлияет на путь сохранения).

5. Проверяем, что загружаемый файл еще не существует.

6. Загружаем файл.

Напишем PHP-скрипт для работы с функциями загрузки файлов. Создайте файл ajaxupload.php и добавьте в него приведенный ниже код.

«; $name=$_POST[‘name’]; $email=$_POST[’email’]; //включаем файл конфигурации базы данных include_once’db.php’; //вставляем данные формы в базу данных $insert=$db->query(«INSERT uploading (name,email,file_name) VALUES (‘».$name.»‘,'».$email.»‘,'».$path.»‘)»); //выводим $insert?’ok’:’err’; > > else < echo’invalid’; >> ?>

Теперь, когда все проверки выполнены, перемещаем загруженный файл из папки tmp в папку upload . Для этого создайте ее в каталоге проекта. В папку upload будут сохраняться загруженные изображения. pathinfo() — это встроенная функция, которая возвращает имя файла и расширение.

Проверяем наличие ошибок при загрузке

Чтобы проверить, это введите приведенный ниже код. Если значение error больше 0, значит, возникла ошибка.

if($errorimg>0) < die(‘An error occurred while uploading the file ‘); >

Проверяем, что файл имеет допустимый размер

Размер файла измеряется в байтах. Если ограничение на размер загружаемого файла установленона уровне 500kb, то он должен быть меньше 500000 байт.

if($myFile[‘size’]>500000) < die(‘File is too big ‘); >

move_uploaded_file — это функция, которая перемещает файл из $myFile[“tmp_name”] (временное место хранения) в «upload /» . $name (постоянное место хранения), а также проверяет запись таблицы базы данных.

Проверяем, что файл имеет допустимый размер

Завершение

В этой статье я продемонстрировал, как создать PHP-скрипт для загрузки изображений и файлов с помощью AJAX и jQuery. Здесь вы найдете демо-версию этого приложения.

Источник: www.internet-technologies.ru

Работа с REST API Яндекс.Диска через Python Requests

Работа с REST API Яндекс.Диска через Python Requests

Из этой статьи вы узнаете как работать с REST API Яндекс.Диском через Python используя HTTP запросы (ранее мы делали с помощью готовой библиотеки yadisk). Создадим небольшую программу для быстрой загрузки файлов прямо с проводника Windows.

Яндекс не ободряет когда его сервис используют только как хранилище для резервных копий.

Создать приложение и получить токен

Зарегистрируем приложение на oauth.yandex.ru и назовем его к примеру Backup1 , укажем платформу «Веб-сервисы» (воспользуемся URL для разработки), и разрешим API полный доступ к Диску.

Читайте также:
Microsoft Edge как работать с программой

Создать приложение Yandex API Создать приложение Yandex APIСоздать приложение Yandex API

В ответ мы должны получить информацию о новом приложение, сейчас нас интересует его ID

Создать приложение Yandex API

Что бы получить отладочный токен перейдем по ссылке ниже, заменив ID приложения на свой

https://oauth.yandex.ru/authorize?response_type=token

Напишем две функции для нашей будущей программы

Создать папку

def create_folder(path): «»»Создание папки. n path: Путь к создаваемой папке.»»» requests.put(f’?path=’, headers=headers)

Создаст папку hello world и API

create_folder(‘hello world’) create_folder(‘hello world/api’)

Загрузить файл

def upload_file(loadfile, savefile, replace=False): «»»Загрузка файла. savefile: Путь к файлу на Диске loadfile: Путь к загружаемому файлу replace: true or false Замена файла на Диске»»» res = requests.get(f’/upload?path= def create_folder(path): «»»Создание папки. n path: Путь к создаваемой папке.»»» requests.put(f’?path=’, headers=headers) def upload_file(loadfile, savefile, replace=False): «»»Загрузка файла. savefile: Путь к файлу на Диске loadfile: Путь к загружаемому файлу replace: true or false Замена файла на Диске»»» res = requests.get(f’/upload?path=»»Загрузка папки на Диск. n savepath: Путь к папке на Диске для сохранения n loadpath: Путь к загружаемой папке»»» date_folder = ‘_’.format(loadpath.split(‘\’)[-1], datetime.now().strftime(«%Y.%m.%d-%H.%M.%S»)) create_folder(savepath) for address, _, files in os.walk(loadpath): create_folder(‘//’.format(savepath, date_folder, address.replace(loadpath, «»)[1:].replace(«\», «/»))) bar = Bar(‘Loading’, fill=’X’, max=len(files)) for file in files: bar.next() upload_file(».format(address, file), ‘//’.format(savepath, date_folder, address.replace(loadpath, «»).replace(«\», «/»), file)) bar.finish() if __name__ == ‘__main__’: #backup(‘Backup’, r’C:Filesbackup’) backup(‘Backup’, os.getcwd())

Программа готова, добавим новую системную переменную

системная переменная

Теперь мы может загружать наши файлы из проводника используя переменную %backup%

Комментарии

pro100bro

01 января 2023

Вами было представлено не совсем корректное использование блока try/except. Если при GET запросе по каким-то причинам возникла ошибка, то уже до попадания в try/except, в переменной ‘res’ будет отсутствовать ключ ‘href’, то есть ссылка на загрузку. В этом случае мы можем использовать простой ‘if’, для проверки ответа от Яндекс диска: if ‘href’ not in response.keys(): print(f»Got an error: «) else: with open(loadfile, ‘rb’) as f: requests.put(response[‘href’], files=)

Рамис

02 января 2023

if res.get(«href»): .

Источник: ramziv.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru