Permission d'un fichier envoyé : php

Résolu/Fermé
Utilisateur anonyme - 6 juin 2009 à 17:15
 Utilisateur anonyme - 6 juin 2009 à 18:16
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 jeudi 25 octobre 2007 Statut Membre Dernière intervention 30 juin 2013 177
Modifié par crapoulou le 27/09/2010 à 20:23
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
6 juin 2009 à 17:44
Oui
0
benvii Messages postés 308 Date d'inscription dimanche 8 juin 2008 Statut Membre Dernière intervention 28 octobre 2010 137
6 juin 2009 à 17:50
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 jeudi 25 octobre 2007 Statut Membre Dernière intervention 30 juin 2013 177
Modifié par crapoulou le 27/09/2010 à 20:23
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
6 juin 2009 à 18:03
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 dimanche 8 juin 2008 Statut Membre Dernière intervention 28 octobre 2010 137
6 juin 2009 à 18:05
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
6 juin 2009 à 18:16
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