Найти - Пользователи
Полная версия: Загрузка файла на сервер по API
Начало » Python для экспертов » Загрузка файла на сервер по API
1
imuromec
Здравствуйте!
Стоит, на первый взгляд, простая задача, загрузить файл на сервер.
Делаю по данной инструкции: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>

Помогите решить проблему
imuromec
Нашел ошибку, надо было заменить ключ 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)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB