Php

Rive85 -  
 Profil bloqué -
Bonjour,
J'ai creer un formulaire php auquel j'y ai ajouter une possibilite de joindre une photo (taille maxi 5Mo), probleme lorsque je remplie mon formulaire et que je souhaite joindre une photo losque je clique sur envoie, il me met une erreur comme quoi c'est impossible de copier le fichier dans upload/des numero.
J'ai essayer de creer se sous repertoire a la racine de mon site, meme prob, et a la racine de mon formulaire meme prob aussi...
J'ai aussi essayer de mettre un chmod 777 sur le repertoir upload a la racine du site via filzilla mais toujours le meme probleme. "Impossible de copier le fichier dans upload/chiffre" est le message qui reviens a chaque fois; je voi pas d'ou ca vient....

Est ce que quelqun peut m'aider.
Merci

5 réponses

  1. Utilisateur anonyme
     
    Votre php.ini est-il bien configuré pour accepter l'upload ?

    * file_uploads
    * upload_max_filesize
    * max_input_time
    * memory_limit
    * max_execution_time
    * post_max_size

    Même chose pour le httpd.conf avec la variable LimitRequestBody

    voir ce lien http://www.radinks.com/upload/config.php

    Quel est le message d'erreur exact ?

    Ca peut être aussi un problème de droits liés au groupe et propriétaire du répertoire (chown)
    0
    1. Rive85
       
      Le Message exact est "impossible de copier le fichier dans upload/19846581"

      Merci
      0
    2. Rive85
       
      je viens de verifier je n'ai pas de php.ini, comment on cree se fichier et ou le met on

      Merci
      0
  2. Profil bloqué
     
    Bonjour,

    peut tu montrer le code de ton formulaire ,merci sa aidera !

    0
    1. Rive85
       
      <?PHP
      $url_upload='';
      $data='';
      $data.='Nom :='.$_POST["id_44"].'<br>';
      $data.='Travaux :='.$_POST["hidden_45"].'<br>';
      $data.='Adresse :='.$_POST["id_46"].'<br>';
      $data.='Code Postal :='.$_POST["id_47"].'<br>';
      $data.='Ville :='.$_POST["id_48"].'<br>';
      $data.='Votre E-Mail :='.$_POST["id_49"].'<br>';
      $data.='Telephone :='.$_POST["id_50"].'<br>';
      $data.='Demande :='.$_POST["id_51"].'<br>';
      $data.='Descriptif de vos travaux :='.$_POST["id_52"].'<br>';
      $chiffre=rand(100,999).rand(100,999).rand(100,999);
      $content_dir = 'upload/';
      $content_dir.=$chiffre."/";
      $envoi_mail_pj=1;
      IF (!file_exists("./upload")){
      umask(0);
      @mkdir("./upload",0777);
      }
      IF (!file_exists("./upload/$chiffre")){
      umask(0);
      @mkdir("./upload/$chiffre",0777);
      }$nb_fic=0;
      $url_chemin=str_replace("envoi.php","",$_SERVER["SCRIPT_URI"]);

      $tmp_file = $_FILES['id_58']['tmp_name'];
      if ($tmp_file<>""){
      if( !is_uploaded_file($tmp_file) )
      {
      exit("Le fichier est introuvable");
      }

      if ( $_FILES['id_58']['size']>6000000){
      exit("Le poids de votre fichier est trop important.");
      }

      // on vérifie maintenant l'extension
      $type_file1 = explode(".",$_FILES['id_58']['name']);


      $type_file=strtolower($type_file1[count($type_file1)-1]);
      IF (!strstr($type_file, 'jpg')&& !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png') ){
      exit("Ce type de fichier n'est pas autorisé.");
      }

      // on copie le fichier dans le dossier de destination
      $name_file = $_FILES['id_58']['name'];

      if( @preg_match('#[\x00-\x1F\x7F-\x9F/\\]#', $name_file))
      {
      exit("Nom de fichier non valide");
      }
      else {
      if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
      {
      exit("Impossible de copier le fichier dans $content_dir");
      }
      else {
      $url_upload.='fichier à télécharger sur le serveur : '.$url_chemin.$content_dir . $name_file.'<br>';
      $nb_fic++;
      $tab_fic[$nb_fic][0]=$content_dir . $name_file;
      $tab_fic[$nb_fic][1]=$_FILES['id_58']['type'];
      }
      }
      }



      $data.=$url_upload;
      include('mimemail.php');
      if (!$fp=fopen('./upload/'.$chiffre.'/renseignements.htm','w')){}else {;
      fputs($fp,$data);
      fclose($fp);}
      $m = new CMIMEMail('Vous <moi@moi.com>','<moi@moi.com>','demande de renseignement');
      $m->mailbody($data,$data);
      if ($nb_fic>0 && $envoi_mail_pj==1){
      $x=1;

      while ($x<=count($tab_fic)){

      $m->attachFile($tab_fic[$x][0],$tab_fic[$x][1]);
      $x++;
      }
      }
      $m->send();
      header("location: merci.html");
      exit();
      ?>
      0
  3. mrhassanV2 Messages postés 45 Statut Membre 1
     
    Bah, il faut coller votre code :p

    0
  4. Utilisateur anonyme
     
    Dans le code je vois que vous créez le répertoire, ça marche ça ?

    Le répertoire est bien créé ?

    Je vous conseillerais bien de créer le répertoire en dur avec votre FTP, de mettre les droits, puis de commenter la partie création répertoire dans le code et de réessayer.
    0
    1. Utilisateur anonyme
       
      en plus vous créez des sous répertoires
      donc il faut des droits récursifs sur /upload
      0
    2. Rive85
       
      Dans le code je vois que vous créez le répertoire, ça marche ça ?

      Le répertoire est bien créé ?

      Je ne comprend pas mon code est il faut ?
      les sous répertoires il le crée en automatique
      0
    3. Utilisateur anonyme
       
      Etes-vous certain que le répertoire upload est bien créé sur votre serveur web ?
      Si ça ce trouve PHP n'a pas suffisament de droits pour créer des répertoires
      0
    4. Rive85
       
      upload est bien créé sur mon serveur
      0
    5. Utilisateur anonyme
       
      ok
      et vous avez regardé les variables du php.ini et du httpd.conf ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Profil bloqué
     
    Certains serveur empechent leurs utilisateurs d'octroyer tout les droits a leurs dossiers
    pour verifier ca il te sufffit de crer un dossier en ch mode 777 via ton code php
    ensuite avec ton navigateur ftp verifier ce meme dossier a bel et bien gardé cette propriété
    clique droit sur dossier ==> propriété
    0
    1. Rive85
       
      et si telle est pas le cas
      0
    2. Profil bloqué
       
      a ce moment la tu dois changer ton script
      de facon a creer ton script via la ftp
      exemple


      $ftp = ftp_connect("$host"); // On prépare la connexion

      ftp_login($ftp,"$login","$password"); // On se connecte au serveur

      ftp_mkdir ($ftp,"dossier-voitures /image-ferrari"); // Création du dossier. (chemin depuis la racine du serveur)




      ftp_quit ($ftp); // On se déconnecte du serveur

      ici tu trouvera toute les possibilités de la fonction ftp qui fait exactement la meme chose que celle que tu utilise actuellement
      seulement avec cette fonction tes droits restent a 777 et ne changent pas


      https://www.php.net/manual/fr/ref.ftp.php

      ;)
      0