1

Hi all

bon j'ai un petit soucis, je vous explique, j'ai un jolie compte infomaniak, et j'aimerai uploader via un formulaire des images dans un repertoire que je crée au passage si il l'est pas! Au mieux pour le moment j'ai réussi a creer le répertoire(et encore je sais meme pas comment vu qu'entre temps j'ai remodifier le code en pensant que ca ne marchait pas!)

Je vous met un extrait de mon code
$lastname="mini.jpg"; $filename=$_FILES['avatar']['tmp_name']; $filedir="users/".$ligne['ID']; if(!file_exists($filedir)) mkdir($filedir,0777); chmod($filedir,0777); $poids_max = 512000; // Poids max de l'image en octets (1Ko = 1024 octets) $repertoire = $filedir; // Repertoire d'upload // On vérifit le type du fichier if ($_FILES['avatar']['type'] != 'image/png' && $_FILES['avatar']['type'] != 'image/jpeg' && $_FILES['avatar']['type'] != 'image/gif') {    $erreur = 'Le fichier doit être au format *.jpeg, *.gif ou *.png .'; } // On vérifit le poids de l'image elseif ($_FILES['avatar']['size'] > $poids_max) {    $erreur = 'L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.'; } // On vérifit si le répertoire d'upload existe elseif (!file_exists($repertoire)) {    $erreur = 'Erreur, le dossier d\'upload n\'existe pas.'; } // Si il y a une erreur on l'affiche sinon on peut uploader if(isset($erreur)) {    echo $erreur; } else {    // On définit l'extention du fichier puis on le nomme par le timestamp actuel    if ($_FILES['avatar']['type'] == 'image/jpeg') { $extention = '.jpeg'; }    if ($_FILES['avatar']['type'] == 'image/png') { $extention = '.png'; }    if ($_FILES['avatar']['type'] == 'image/gif') { $extention = '.gif'; }    $nom_fichier = mini.$extention;    // On upload le fichier sur le serveur.    if (move_uploaded_file($_FILES['avatar']['tmp_name'], $repertoire.$nom_fichier))    {       $url = 'www.vie2grenier.com/'.$repertoire.'/'.$nom_fichier.'';       echo 'Votre image à été uploadée sur le serveur avec succes!<br>Voici le lien: <input type="text" value="' . $url . '" size="60">';    }    else    {       echo 'L\'image n\'a pas pu être uploadée sur le serveur.';    } }

le dossier users etait en 777 au moment des tests

sinon j'avais une autre versions avant mais elle n'ont plus donné pas plus de résultat
//$filedir="users/".$ligne['ID']; //if(!file_exists($filedir)) //mkdir($filedir,0777); //@chmod($filedir,0777); //if(file_exists("$filedir/$lastname")) //{ // @unlink($filedir/$lastname); // @move_uploaded_file($filename,"$filedir/$lastname"); //} //else //{ // @move_uploaded_file($filename,"$filedir/$lastname"); //} //@chmod($filedir,0755); //@mysql_close(); //header("Location:http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/form_sthem.php?ssth=".$theme); //} //if($nom_du_fichier['error']) //{ // switch ($nom_du_fichier['error']) // { // case 1: //UPLOAD ERR INI SIZE // break; // case 2: // UPLOAD ERR FORM SIZE // break; // case 3: // UPLOAD ERR PARTIAL // break; // case 4: // UPLOAD ERR NO FILE // break; // } //} //else //{ //echo "pas d'erreur"; // UPLOAD ERR OK //} //}

bon le code est porc ca, je n'en doute pas(mes essais en PHP) et c'est beaucoup de copier coller(avec quelques modification) du net... donc...

alors j'ai modifier remodifier et toujours rien. Si quelqu'un peu me donner un chemin a suivre(ou un exemple qui marche) je suis preneur
avatar
https://air-gaming.com/tests/ si vous voulez de la bonne lecture :=)

2

apres 42 visualisation personne pour m'aider mourn
avatar
https://air-gaming.com/tests/ si vous voulez de la bonne lecture :=)

3

Tu manques de méthode.
Du coup ton explication est brouillonne aussi, et tu ne donnes pas les informations qui permettraient de t'aider.
Par exemple, tu dis que ça marche pas, mais tu ne dis pas quoi, quelle est la sortie générée par le script quand tu as testé, qu'as-tu tenté de modifier précisément, et qu'est-ce qui a changé dans ce cas.

Prends un bon papier avec un bon crayon, le développement ça commence toujours comme ça. Ca se trouve, une fois tout bien posé sur une feuille, la solution te sera évidente. Et même si elle ne l'est pas, au moins tu pourras poser une question claire qui permettra à d'autres de comprendre ton problème.

4

Normalement qd tu uploads un fichier (si mes souvenirs sont bons) via un formulaire php : le dudit fichier est placé en /tmp et non ds ton repertoire. Du coup il faut effectuer un copy ou move en direction de ton repertoire personnalisé.
D'ailleurs tu devrais regarder via un phpinfo(); comment est configuré ton espace mutualisé.

5

Pas envie de regarder et corriger ce que tu as fait, ca, ca marche:
if(isset($_POST['upload'])) // si formulaire soumis
  {

      $tmp_file = $_FILES['fichier']['tmp_name'];

      if( !is_uploaded_file($tmp_file) )
          exit("Le fichier est introuvable");
      // on copie le fichier dans le dossier de destination
      $name_file = $_FILES['fichier']['name'];
      if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
          exit("Impossible de copier le fichier dans $content_dir");
      echo "Le fichier a bien été uploadé";
  }

6

ok Spectras, t'as raison, quand j'ai posté ca, je venais d'essayer pendant des heures, j'ai réussi en faite a crée un sous dossier, et même un fichier a un moment(a la 19eme tentative grin mais en modifiant(sans sauver celui qui donner ca) pouf plus rien) en général j'avais des problemes avec chmod, ou bien mkdir, des fois j'avais aucune erreur en retour(mais pas de fichiers en sorti grin)
skweek : oui j'avais bien compris ca!
Neuroo : je vais essayer d'adopter ca smile

merci
avatar
https://air-gaming.com/tests/ si vous voulez de la bonne lecture :=)

7

Tant mieux si tu avais compris. wink