IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Transformer ce code en fonction


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Points : 460
    Points
    460
    Par défaut Transformer ce code en fonction
    Bonjour,
    J'utilise toujours ce code pour l'upload de fichier depuis un site web.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    define('UPLOAD_DIRECTORY', './uploads/');
    $extensions_OK = array('jpg', 'jpeg', 'gif', 'png');
     
    if(!empty($_FILES)){
        if(!empty($_FILES['attached_file']['name'])){
    	$ext = strtolower( pathinfo($_FILES['attached_file']['name'],  PATHINFO_EXTENSION)  );
    	if(in_array($ext, $extensions_OK)){
                  if(is_uploaded_file($_FILES['attached_file']['tmp_name'])){
                  $name     = $_FILES['attached_file']['name'];
                  $tmp_name = $_FILES['attached_file']['tmp_name'];
                  $error    = $_FILES['attached_file']['error'];
                  $clean_name = md5( uniqid('H', 5) ).'.'.$ext;	
                  if(function_exists('mime_content_type')){$type = mime_content_type($tmp_name);}
                  else{$type = $_FILES['attached_file']['type'];}	
                  if(!move_uploaded_file($tmp_name, UPLOAD_DIRECTORY.$clean_name)){$error_string = "Le fichier <b>n'a pas</b> été déplacé correctement";}
                  else{$error_string = 'Le fichier a été déplacé correctement';}
     
                  }
    	}
        }
    }
    Tout ce qui change d'une utilisation à l'autre c'est ces trois variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    define('UPLOAD_DIRECTORY', './uploads/');
    $extensions_OK = array('jpg', 'jpeg', 'gif', 'png');
    $_FILES['attached_file']
    Ce dernier dépend de l'attribut name de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="file" name="attached_file" />
    Comment transformer ce truc en fonction, juste en transmettant ces 3 paramètres lors de l'exécution.

    Merci d'avance...

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    define('UPLOAD_DIRECTORY', './uploads/');
    $extensions_OK = array('jpg', 'jpeg', 'gif', 'png');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    function I_AM_FCKINK_LAZY($upload_dir, $extensions_OK, $varname)
    {
    if(!is_array($_FILES[$varname])){
        if(!empty($_FILES[$varname]['name'])){
    	$ext = strtolower( pathinfo($_FILES[$varname]['name'],PATHINFO_EXTENSION) );
    	if(in_array($ext, $extensions_OK)){
                  if(is_uploaded_file($_FILES[$varname]['tmp_name'])){
                  $name     = $_FILES[$varname]['name'];
                  $tmp_name = $_FILES[$varname]['tmp_name'];
                  $error    = $_FILES[$varname]['error'];
                  $clean_name = md5( uniqid('H', 5) ).'.'.$ext;	
                  if(function_exists('mime_content_type')){$type = mime_content_type($tmp_name);}
                  else{$type = $_FILES[$varname]['type'];}	
                  if(!move_uploaded_file($tmp_name,$upload_dir.$clean_name)){$error_string = "Le fichier <b>n'a pas</b> été déplacé correctement";}
                  else{$error_string = 'Le fichier a été déplacé correctement';}
     
                  }
    	}
        }
    }
     }
    J'ajouterai qu'à ce niveau il faut aller dans la section débutant.

  3. #3
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    j'ai merdé, elle marche pas ma fonction.

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Points : 460
    Points
    460
    Par défaut
    Citation Envoyé par gene69 Voir le message
    j'ai merdé, elle marche pas ma fonction.
    J'avais déjà le sourire aux lèvres, dommage.
    Merci d'avance...

  5. #5
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    de l'autre côté à un caractère près elle fonctionne. Je te laisse chercher, c'est pas dur. Le principal c'est que tu voies le principe.

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Points : 460
    Points
    460
    Par défaut
    Citation Envoyé par gene69 Voir le message
    de l'autre côté à un caractère près elle fonctionne. Je te laisse chercher, c'est pas dur. Le principal c'est que tu voies le principe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(!is_array($_FILES[$varname])){
    Je ne crois que cela soit la syntaxe de la fonction is_array. Et en outre pourquoi cette négation? Je ne comprends pas bien...

    Merci d'avance...

  7. #7
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    zut tu as trouvé !
    j'espere qu'il y en a pas d'autres ... m'enfin je vois pas trop la difficulté à transformer un bout de code en procédure/routine/fonction....

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Points : 460
    Points
    460
    Par défaut
    Citation Envoyé par gene69 Voir le message
    zut tu as trouvé !
    j'espere qu'il y en a pas d'autres ... m'enfin je vois pas trop la difficulté à transformer un bout de code en procédure/routine/fonction....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(!is_array($_FILES[$varname])){
    Quel est le code exact sur cette ligne pour que ce truc roule?

    Merci d'avance...

  9. #9
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    j'ai du mal à te suivre. tu sais qu'il y a un problème, tu détectes quelque chose d'anormal et tu ne fais pas le lien... même si je te le confirme.

  10. #10
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Points : 460
    Points
    460
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    function UploadFile($upload_dir, $extensions_OK, $varname){
            if(!empty($_FILES[$varname]['name'])){
              		$ext = strtolower( pathinfo($_FILES[$varname]['name'],PATHINFO_EXTENSION) );
              		if(in_array($ext, $extensions_OK)){
                            if(is_uploaded_file($_FILES[$varname]['tmp_name'])){
                                $name     = $_FILES[$varname]['name'];
                                $tmp_name = $_FILES[$varname]['tmp_name'];
                                $error    = $_FILES[$varname]['error'];
                                $clean_name = md5( uniqid('H', 5) ).'.'.$ext;	
                                if(function_exists('mime_content_type')){$type = mime_content_type($tmp_name);}
                                else{$type = $_FILES[$varname]['type'];}	
                                if(!move_uploaded_file($tmp_name,$upload_dir.$clean_name)){$error_string = "Le fichier <b>n'a pas</b> été déplacé correctement";}
                                else{$error_string = 'Le fichier a été déplacé correctement';}
    														return array('name'  => $name,'type'  => $type,'error' => $error,'size'  => filesize($tmp_name),'tmp_name' => $tmp_name,'clean_name' => $clean_name,'error_string' => $error_string);
                            }
              	  }
            }
    }
    Elle roule désormais bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Migration de code VB - Fonction CreateObject
    Par Agoye dans le forum ASP.NET
    Réponses: 2
    Dernier message: 26/06/2006, 15h23
  2. [XML] Transformer un code XML en PHP
    Par leila2006 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 07/05/2006, 18h51
  3. [LG] Transformer un code ascii en un autre
    Par JoseF dans le forum Langage
    Réponses: 8
    Dernier message: 29/12/2005, 11h47
  4. [PHP-JS] pasteHTML qui transforme le code
    Par jibouze dans le forum Langage
    Réponses: 1
    Dernier message: 28/10/2005, 17h36
  5. [] transformer un code ean en isbn
    Par dlpxlid dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/10/2005, 15h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo