Python Requests & Bottle : Problème d'upload

Soucis pour upload d'un client a un serveur sans passer par le naviguateur

Le problème exposé dans ce sujet a été résolu.

Hello, du coup j’ai un soucis qui m’a fait perdre pas mal de temps aujourd’hui. Je souhaite uploader des fichiers automatiquement via le module requests.

J’ai essayé de tourner le code dans tous les sens sans arriver a faire ce que je veux. Je parvient à upload un fichier via un naviguateur mais pas via mon script client qui utilise requests

En suivant des forums j’ai essayer pas mal de choses, notamment d’upload sur https://httpbin.org/post plutôt que sur mon serveur, ça fonctionne sur httpbin… Mais pas sur mon serveur x) alors voilà je vous présente un échantillons de mon code, qui me pose soucis:

Pour le server:

#!/usr/bin/env python3
from cheroot import wsgi
from cheroot.ssl.builtin import BuiltinSSLAdapter
from beaker.middleware import SessionMiddleware
from bottle import (
    route,
    response,
    run,
    redirect,
    request,
    static_file,
    ServerAdapter,
    default_app,
)
import os

os.system("mkdir downloaded")

@route("/upload1")
def upload1():
    return("\
    <form method='post' action='/upload' enctype='multipart/form-data'>\
        <input type='file' name='newfile'>\
        <input type='submit' value='Submit'>\
    </form>")


@route('/upload', method="POST")
def upload():
    print("bup")
    # get the 'newfile' field from the form
    newfile = request.files.get('newfile')
    print(newfile)
    save_path = os.path.join("downloaded", newfile.filename)
    newfile.save(save_path)
    return "ok"

if __name__ == "__main__":
    run(app=default_app(), host="0.0.0.0", port=80, debug=True, reloader=True)

Pour le client :

#!/usr/bin/env python3

import requests
os.system("echo 'blablabla' >> test.txt")
with open("test.txt","rb") as f:
    r = requests.post("http://localhost/upload", data=f.read())

print(r)

Voilà l’erreur en elle même, lors du premier Bup j’utilise mon client pour envoyer le fichier file.txt (echec) lors du second bup j’utilise mon naviguateur pour upload le fichier (ok):

image.png
image.png

Merci d’avance. Je suis disponible en vocal sur discord si quelqu’un à envie de m’aider.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte