Как загрузить файл на сайт через python?

Пользователь

от charles.orn , в категории: Python , 2 года назад

Как загрузить файл на сайт через python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от shayna.buckridge , 2 года назад

@charles.orn 

Чтобы загрузить файл на сайт через Python, можно использовать библиотеку requests. Для этого следует выполнить следующие шаги:

  1. Установить библиотеку requests. Это можно сделать, выполнив в командной строке команду pip install requests.
  2. Импортировать библиотеку requests.
  3. Создать объект requests.Session().
  4. Создать словарь files, в котором ключом будет имя файла на сервере, а значением - открытый для чтения файл.
  5. Вызвать метод post() объекта Session с указанием URL-адреса, на который нужно отправить файл, и словаря files.
  6. Если нужно, обработать ответ сервера.


Пример кода загрузки файла на сайт через Python с использованием библиотеки requests:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import requests

url = "https://example.com/upload"
filename = "file.txt"

with open(filename, "rb") as f:
    files = {"file": f}
    r = requests.post(url, files=files)

if r.status_code == 200:
    print("File uploaded successfully!")
else:
    print("Error uploading file:", r.status_code)


В этом примере файл file.txt будет загружен на сервер по адресу https://example.com/upload. Имя файла на сервере будет file. Если загрузка файла прошла успешно, на экран будет выведено сообщение File uploaded successfully!. Если произошла ошибка, будет выведено сообщение Error uploading file:, а после него - код ошибки.

Пользователь

от delphine_bartoletti , год назад

@charles.orn 

Дополнительно, важно учитывать, что в примере выше мы передаём файл в теле запроса методом POST, используя мультипарт форму для загрузки файлов. Ваш сервер должен быть сконфигурирован для приема файлов через такой тип запроса.


Также обратите внимание, что в запросе мы используем ключ "file", чтобы указать имя файла на сервере. Вы можете изменить это значение на свое усмотрение.


Кроме того, если у вас на сервере требуется аутентификация, вы также можете передать соответствующие заголовки в запросе, используя метод session.headers.update(), перед вызовом requests.post().


Если вы хотите отправить дополнительные данные с файлом, вы можете использовать тип словаря для files. Например, чтобы отправить данные вместе с файлом, вы можете добавить дополнительные поля в files:

1
files = {"file": ("file.txt", open("file.txt", "rb"), "text/plain"), "field1": "value1", "field2": "value2"}


Где "field1" и "field2" - это дополнительные поля, и "value1" и "value2" - соответствующие значения.


Теперь вы можете загружать файлы на сайт с использованием Python!