
Ce qu'il manque ce sont quelques dessins avec serveur/client
On dit toujours un petit dessin vaut mieux qu'un long discours
Tu parles de notions qui me sont inconnues.

Dans ton exemple 1 le PI est serveur et client ?
Modérateurs : Francois, maxty01
Code : Tout sélectionner
Pour envoyer une image par multipart, encore plus facile :
file = {'file': open("photo.png", "rb")}
r = requests.post("http://linuxfr.org", files = file)
Code : Tout sélectionner
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
// Copie dans le repertoire du script avec un nom
// incluant l'heure a la seconde pres
$repertoireDestination = dirname("images")."/";
$nomDestination = "picture_rucher_".date("YmdHis").".jpg";
if (is_uploaded_file($_FILES["picture_rucher"]["tmp_name"])) {
if (rename($_FILES["picture_rucher"]["tmp_name"],
$repertoireDestination.$nomDestination)) {
echo "Le fichier temporaire ".$_FILES["picture_rucher"]["tmp_name"].
" a été déplacé vers ".$repertoireDestination.$nomDestination;
} else {
echo "Le déplacement du fichier temporaire a échoué".
" vérifiez l'existence du répertoire ".$repertoireDestination;
}
} else {
echo "Le fichier n'a pas été uploadé (trop gros ?)";
}
?>
</body>
</html>
Code : Tout sélectionner
upload_max_filesize = 2M
Code : Tout sélectionner
fic="/home/pi/partage/picture_rucher.jpg"
file = {'file': open(fic, "rb")}
r = requests.post("http://ruches.montminoises.free.fr/AfficheCamera.php", files = file)
Code : Tout sélectionner
<?php
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
// Testons si le fichier n'est pas trop gros
if ($_FILES['monfichier']['size'] <= 2500000)
{
// Testons si l'extension est autorisée
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
if (in_array($extension_upload, $extensions_autorisees))
{
// On peut valider le fichier et le stocker définitivement
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'images/' . basename($_FILES['monfichier']['name']));
echo "L'envoi a bien été effectué !";
}
}
}
?>
Code : Tout sélectionner
<?php
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
if (isset($_FILES['picture89.jpg']) AND $_FILES['picture89.jpg']['error'] == 0)
{
// Testons si le fichier n'est pas trop gros
if ($_FILES['picture89.jpg']['size'] <= 2500000)
{
// Testons si l'extension est autorisée
$infosfichier = pathinfo($_FILES['picture89.jpg']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
if (in_array($extension_upload, $extensions_autorisees))
{
// On peut valider le fichier et le stocker définitivement
move_uploaded_file($_FILES['picture89.jpg']['tmp_name'], 'images/' . basename($_FILES['picture89.jpg']['name']));
echo "L'envoi a bien été effectué !";
}
else {echo "Extension non autorisée";}
}
else {
$temp = $_FILES['picture89.jpg']['size'];
echo "taille: $temp ";}
}
else {
$temp=$_FILES['picture89.jpg']['error'];
echo "erreur: $temp ";}
?>
Les paramètres de ton script pour définir la taille maxi du fichier ne peuvent pas aller au delà du paramètre de configuration du serveur php. Chez free, c'est 2Mo maxi par fichier pour l'upload php et tu ne peux pas intervenir sur ce paramètre.estelle a écrit :J'ai rajouté des "else"
Il me retourne par le "else" le message "Erreur:" sans rajouter le code de retour de la fonction " $_FILES['picture89.jpg']['error']"
Code : Tout sélectionner
... // Testons si le fichier n'est pas trop gros if ($_FILES['picture89.jpg']['size'] <= 2500000) ...