Envoi de photo

Résolu
valentin -  
 valentin -
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

A voir également:

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
valentin
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
valentin
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > valentin
 
... 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
valentin
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
valentin
 
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