@kbats

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

Как загрузить файл на сервер через python 3.4, используя php обработчик?

Использую такой php обработчик
<?php  
 if(is_uploaded_file($_FILES["filename"]["tmp_name"]))
   {
     // Если файл загружен успешно, перемещаем его
     // из временной директории в конечную
     move_uploaded_file($_FILES["filename"]["tmp_name"], "".$_FILES["filename"]["name"]);
   } else {
      echo("Ошибка загрузки файла");
   }
?>

Через html форму загружается, а через python requests нет

Вот python код:
import requests
files = {'test.txt': open('test.txt', 'rb')}
r = requests.post('http://kbats183.besaba.com/python/uploudfile.php', files=files)
print (r.status_code == requests.codes.ok)
print(r.text)


Подскажите пожалуйста почему не работает
  • Вопрос задан
  • 3402 просмотра
Пригласить эксперта
Ответы на вопрос 2
p141592
@p141592
Backend
Есть вариант по проще и по сложнее
По проще:
import os
os.system("scp FILE USER@SERVER:PATH")
#e.g. os.system("scp foo.bar joe@srvr.net:/path/to/foo.bar")

Только сначала нужно сохранить файл на диск перед отправкой

И по сложнее:
import os
import paramiko

ssh = paramiko.SSHClient() 
ssh.load_host_keys(os.path.expanduser(os.path.join("~", ".ssh", "known_hosts")))
ssh.connect(server, username=username, password=password)
sftp = ssh.open_sftp()
sftp.put(localpath, remotepath)
sftp.close()
ssh.close()

Это тоже самое, только без использования консольной команды
Ответ написан
Комментировать
Rurick80
@Rurick80
Web Dewelop
Может стоит так попробывать?
with open('test.txt', 'rb') as fd:
    files = {'uploadfile' : ('test.txt',  fd.read() ) }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы