Envoi de photo

Résolu/Fermé
valentin - 22 sept. 2018 à 16:45
 valentin - 23 sept. 2018 à 16:44
Bonjour,
je souhaiterais envoyer une image sur un serveur depuis une page internet mais je n'y arrive pas. Quelqu'un pourrais m'aider ? Je bloque dessus depuis quelques jours déjà :
    <form method="post" action="reception.php" enctype="multipart/form-data" >
         <label for="icone">Icone du fichier (JPG, PNG,jpng ou GIF) :</label><br />
         <input type="file" name="icone" id="icone" /><br />
         <input type="submit" name="submit" value="Envoyer" />
    </form>

voici reception.php
<?php
function upload($index,$destination)
{
  
     return move_uploaded_file($_FILES[$index]['tmp_name'],$destination);
}
 
  $upload1 = upload('icone.jpg','/home/debian/image');

?>



Du coup voilà, ce que je souhaite c'est qu'à la validation du formulaire l'image soit stocker sur un autre appareil qui sert de serveur.
Merci d'avance

2 réponses

jordane45 Messages postés 38308 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
Modifié le 22 sept. 2018 à 19:14
Essaye ça
<?php

//affichage des erreurs php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);


/**
* Upload fichier
*/
function upload($index,$destination='./')
{
    $files = !empty($_FILES[$index]) ? $_FILES[$index] : NULL;
    if($files){ 
      $fileError = !empty($files['error']) ? $files['error'] : NULL;
      if(!$fileError){
        $file = !empty($files['tmp_name']) ? trim($files['tmp_name']) : NULL;
        $fileSize = $file['size'];
        $fileName = basename($_FILES['avatar']['name']);
        if(file_exists($destination)){
          
          if(move_uploaded_file($file,$destination . $fileName)){
            $result = array('msg'=>'OK');
          }else{
            $result = array('msg'=>"Erreur lors de l'upload",'datas'=>array('file'=>$file,'destination'=>$destination.$fileName,'file size'=> $fileSize));
          }
        }else{
          $result = array('msg'=>"Repertoire $destination inconnu!");
        }
      }else{
        $result = array('msg'=>'$_FILES ERROR', 'err' => getErrorFiles($fileError));
      }
    }else{
      $result = array('msg'=>"Aucun fichier " . $index . " à uploader !",'datas'=>$_FILES);
    }
    return $result;
}

/**
* Indique le type d'erreur
*/
function getErrorFiles($fileError){
    // Check $_FILES[$index]['error'] value.
    switch ($fileError) {
        case UPLOAD_ERR_OK:
            $err = false;
            break;
        case UPLOAD_ERR_NO_FILE:
            $err =  'No file sent.';
            break;
        case UPLOAD_ERR_INI_SIZE:
        case UPLOAD_ERR_FORM_SIZE:
            $err = 'Exceeded filesize limit.';
            break;
        default:
            $err ='Unknown errors.';
            break;
    }
    return $err;
}
 
 
 // Lancement de l'import :
 $upload1 = upload('icone','/home/debian/image');
 if(!empty($upload1['msg']){
  print_r($upload1['msg']);
 }


1
Merci beaucoup de ton aide, j'ai tout de même une question : psk le html est du côté client, du coup ça peut venir de là. Est-ce que le php marche sur le navigateur du client ?
0
jordane45 Messages postés 38308 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
22 sept. 2018 à 19:52
Le php est un langage côté SERVEUR.
Lorsque tu appelles une page de ton site, le serveur travaille (via le PHP ) puis renvoi la réponse à l'utilisateur.
Seuls le HTML, le JAVASCRIPT et le CSS sont interprétés côté "client".
0
oky mais dans tt les exemples que j'ai trouvé sur internet, le php est appelé avec la validation du formulaire. ça va quand même marcher?
0
jordane45 Messages postés 38308 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705 > valentin
22 sept. 2018 à 20:24
... ben.. c'est le principe....
Je ne vais pas te faire un cours sur le fonctionnement d'internet et des navigateurs...
Ne confonds pas le "code source" (celui que tu écris et qui peut contenir du php, du html, du javascript, du css....) et le code "reçu" (puis interprété) par le navigateur internet.
En gros...
le code source : Le paysage que tu photographie avec ton smartphone
Le code interprété par le téléphone du pote à qui tu l'a envoyé : la photo reçue par mms
0
ouais oky merci, je dois régler un problème sur mon serveur, pour tester le php, je te tiens au courant, encore merci !!
0
jordane45 Messages postés 38308 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
22 sept. 2018 à 16:54
Bonjour,
Tu as une erreur dans ton appel de ta fonction...

Tu lui passes, comme "index", la valeur "icone.jpg"
mais.. le nom du champ c'est simplement "icone"
0
Oky merci, mais quand je teste ce code, et que j'upload l'image "icone.jpg", je ne la vois pas dans le répertoire cible.
0