Permission d'un fichier envoyé : php

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,
J'ai un petit soucis, quand j'uppload mon image avec mon formulaire, l'image se met avec en permissions : 600.
(Vu avec filezilla). Mais j'aimerais qu'il se met en fichier normale c'est à dire : 605. Comment faire ????

Voici le code php de mon upload :
<?php
if( isset($_POST['upload']) ) // si formulaire soumis
{
  if( isset($_GET['id']) ) 
  {
  $id = $_GET['id'];
  $content_dir = 'upload/'; // dossier où sera déplacé le fichier
  $tmp_file = $_FILES['fichier']['tmp_name'];
  if( is_uploaded_file($tmp_file) )
  {
    $type_file = $_FILES['fichier']['type'];
    $allowed_types = array("image/bmp", "image/gif", "image/jpeg", "image/jpg",);
    if(in_array($type_file, $allowed_types))
    {
      $size = $_FILES['fichier']['size'];
      if($size < 30000)
      {
      // on copie le fichier dans le dossier de destination
      $name_file = $_FILES['fichier']['name'];
      $extension_image = strrchr(strtolower($name_file), '.');
      $name_filefin = $id.$extension_image;
        if( move_uploaded_file($tmp_file, $content_dir . $name_filefin) )
        {
        echo "Le fichier &agrave; bien &eacute;t&eacute; uploader";
        }else{echo "Impossible de copier le fichier"; }
      }else{echo "Votre image est sup&eacute;rieure &agrave; la taille maximale de 30 000 octets";}
    }else{echo "Le fichier n'est pas une image"; }
  }else{echo "Le fichier est introuvable"; }
}else{echo "Aucun n'article n'a &eacute;t&eacute; trouv&eacute;"; }
}else{echo "Merci de remplir le formulaire";}
?>

A voir également:

7 réponses

internetasso Messages postés 1054 Date d'inscription   Statut Membre Dernière intervention   177
 
le dossier d'upload lui est en 777 ?
La création d'un site commence par la réflexion de son devenir...
0
Utilisateur anonyme
 
Oui
0
benvii Messages postés 308 Date d'inscription   Statut Membre Dernière intervention   137
 
Tu fais un chmod() pour changer les droits de ton image exemple :
chmod("mon_image.jpg", 777);

Regarde ici -> https://www.php.net/manual/fr/function.chmod.php
0
internetasso Messages postés 1054 Date d'inscription   Statut Membre Dernière intervention   177
 
quand avec ton filezilla tu créés ton dossier d'uploads et que tu es sur la fenetre de modification des attributs du fichier, tu mets les permissions en 777 et en dessous tu clics sur la case récursion dans les sous dossiers et tu clics sur appliquer à tous les fichiers et dossiers... la prochaine photo qui viendra se placer en upload dans ce dossier aura les perms 777....
La création d'un site commence par la réflexion de son devenir...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
J'ai donc mis :

      $name_filefin = chmod(".$id.$extension_image.", 605);
        if( move_uploaded_file($tmp_file, $content_dir . $name_filefin) )
        {
        echo "Le fichier &agrave; bien &eacute;t&eacute; uploader";
        }else{echo "Impossible de copier le fichier"; }



Mais sa ne fonctionne pas.
Comment faire ?
0
benvii Messages postés 308 Date d'inscription   Statut Membre Dernière intervention   137
 
Essaye tout simplement :
if( move_uploaded_file($tmp_file, $content_dir . $name_filefin) )
{
chmod($content_dir . $name_filefin, 605);
//Tu rajoutes un echo sit tu veux
}
0
Utilisateur anonyme
 
J'ai mis ceci :

<?php
if( isset($_POST['upload']) ) // si formulaire soumis
{
  if( isset($_GET['id']) ) 
  {
  $id = $_GET['id'];
  $content_dir = 'upload/'; // dossier où sera déplacé le fichier
  $tmp_file = $_FILES['fichier']['tmp_name'];
  if( is_uploaded_file($tmp_file) )
  {
    $type_file = $_FILES['fichier']['type'];
    $allowed_types = array("image/bmp", "image/gif", "image/jpeg", "image/jpg",);
    if(in_array($type_file, $allowed_types))
    {
      $size = $_FILES['fichier']['size'];
      if($size < 30000)
      {
      // on copie le fichier dans le dossier de destination
      $name_file = $_FILES['fichier']['name'];
      $extension_image = strrchr(strtolower($name_file), '.');
      $name_filefin = $id.$extension_image;
        if( move_uploaded_file($tmp_file, $content_dir . $name_filefin) )
        {
        $action = 1;
        }else{echo "Impossible de copier le fichier"; }
      }else{echo "Votre image est sup&eacute;rieure &agrave; la taille maximale de 30 000 octets";}
    }else{echo "Le fichier n'est pas une image"; }
  }else{echo "Le fichier est introuvable"; }
}else{echo "Aucun n'article n'a &eacute;t&eacute; trouv&eacute;"; }
}else{echo "Merci de remplir le formulaire";}
if ($action == 1)
{
  $chmod = chmod($content_dir . $name_filefin, 605);
  if ($chmod == true)
  {
    echo "Le fichier &agrave; bien &eacute;t&eacute; uploader";
  }
  else
  {
    echo "Erreur";
  }
}
else
{
  echo "Erreur";
}


Sa fonctionne sauf que il me fait un chmod en 135
0