Уведомления

Группа в Telegram: @pythonsu

#1 Июль 4, 2015 10:46:31

imuromec
Зарегистрирован: 2015-07-04
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Здравствуйте!
Стоит, на первый взгляд, простая задача, загрузить файл на сервер.
Делаю по данной инструкции:Your text to link here…

С помощью метода video.save получаю ссылку для загрузки:
https://cs506200.vk.me/upload_video_new.php?act=add_video&mid=21844505&oid=21844505&vid=171170813&fid=0&tag=93bb46ee&hash=e238f469a32fe7eee85a&swfupload=1&api=1

Дальше тоже просто:

upload_url = 'https://cs506200.vk.me/upload_video_new.php?act=add_video&mid=21844505&oid=21844505&vid=171170813&fid=0&tag=93bb46ee&hash=e238f469a32fe7eee85a&swfupload=1&api=1'
file_ = {'file': ('video.mp4', open('video.mp4', 'rb'))}
r = requests.post(upload_url, files=file_)
print (r.text)

Но на выходе: {“error”:“invalid file”}

А вот на простой html форме все отлично загружается:
<!DOCTYPE HTML>
<html>
 <head>
  <meta charset="utf-8">
  <title>Тег FORM, атрибут enctype</title>
 </head>
 <body>  
<form enctype="multipart/form-data" action="https://cs506200.vk.me/upload_video_new.php?act=add_video&mid=21844505&oid=21844505&vid=171170813&fid=0&tag=93bb46ee&hash=e238f469a32fe7eee85a&swfupload=1&api=1" method="POST" target="_blank">
 
<input type="file" name="video_file" />
 
<input type="submit" value="Перейти" name="submit" />
</form>
 </body>
</html>

Помогите решить проблему

Офлайн

#2 Июль 4, 2015 13:00:22

imuromec
Зарегистрирован: 2015-07-04
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Нашел ошибку, надо было заменить ключ file на ключ video_file:
file_ = {'video_file': ('video.mp4', open('video.mp4', ‘rb’))}

Рабочий код:

upload_url = 'https://cs514106.vk.me/upload_video_new.php?act=add_video&mid=21844505&oid=21844506&vid=171170057&fid=0&tag=f1d43733&hash=c779951be93f869aea5f&swfupload=1&api=1'
file_ = {'video_file': ('video.mp4', open('video.mp4', 'rb'))}
r = requests.post(upload_url, files=file_)
print (r.text)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version