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 :

faire passer des paramètres pour fonction d'upload


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 56
    Points : 43
    Points
    43
    Par défaut faire passer des paramètres pour fonction d'upload
    bonjour.
    je m'explique:
    j'ai un formulaire d'upload, qui jusqu'à présent était présent sur X pages. maintenant je souhaiterais la mettre en fonction, ce qui permetterais que quand je la fait évoluer, je ne sois pas obliger de modifier 36 pages.
    mon problème est donc que je souhaiterais faire passer comme variables pour la fonction, la variable du champs de type file de mon formulaire.

    Quelqu'un pouraitu-il m'aider??

    Merci

  2. #2
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par adeltimple Voir le message
    bonjour.
    je m'explique:
    j'ai un formulaire d'upload, qui jusqu'à présent était présent sur X pages. maintenant je souhaiterais la mettre en fonction, ce qui permetterais que quand je la fait évoluer, je ne sois pas obliger de modifier 36 pages.
    mon problème est donc que je souhaiterais faire passer comme variables pour la fonction, la variable du champs de type file de mon formulaire.

    Quelqu'un pouraitu-il m'aider??

    Merci
    Non a mon sens cette méthode ne marchera pas, par contre, partout ou elle est présente, fais un include de mon_upload.php

  3. #3
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Avant de dire oui ou non, ça serait bien de voir ton code d'upload, comme ça on pourra t'indiquer ce qu'il faut que tu fasses pour le mettre en fonction.

  4. #4
    Membre averti Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 402
    Points
    402
    Par défaut
    Bonjour,

    Moi j'dis "oui" . C'est tout a fait possible de passer $_FILES['fichier'] à ta fonction.

    Fais ce test tout bête à la soumission de ton formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function uploader($_FILES['fichier']) {
         echo '<pre>',print_r($_FILES['fichier']),'</pre>';
    }
    uploader();

    Règle n°1 du forum francophone : Parler le français...
    Pas de question technique par MP, le forum est fait pour çà, merci.

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 56
    Points : 43
    Points
    43
    Par défaut
    merci de vos réponses
    Citation Envoyé par Maxoo Voir le message
    Avant de dire oui ou non, ça serait bien de voir ton code d'upload, comme ça on pourra t'indiquer ce qu'il faut que tu fasses pour le mettre en fonction.
    voila mon code. Je vous rassure avant mon code était plus élaboré (création de mignature, redimmensionnement suivant la hauteur, modifi du nom pour incorporer la date au format time pour pas me retrouver avec un doublon ....)
    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
    23
    <?php
     
    ?>
    <form method="POST" action="upload.php" enctype="multipart/form-data">
         <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
         Fichier : <input type="file" name="fichier">
         <input type="submit" name="envoyer" value="Mettre à jour">
    </form>
    <?php
    if(isset($_FILES['fichier']))
    {
     
         $fichier = basename($_FILES['fichier']['name']);
         if(move_uploaded_file($_FILES['fichier']['tmp_name'], 'upload/' . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
         {
              echo 'Upload effectué avec succès !';
         }
         else //Sinon (la fonction renvoie FALSE).
         {
              echo 'Echec de l\'upload !';
         }
    }
    ?>
    FoxLeRenard:
    Oui j'y avais pensé mais l'avantage d'une fonction dans un cas comme celui-ci c'est que je lui dit: "là tu fais gaffe, c'est les avatar, tu ne prends que les images""là c'est pour le webmaster, je lui fais confiance, il doit pouvoir mettre des images, vidéos et autres"

    Huntress:
    message d'erreur
    Parse error: syntax error, unexpected '[', expecting ')' in C:\wamp\www\legi\secure\fonctions.php on line 2

  6. #6
    Membre averti Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 402
    Points
    402
    Par défaut
    J'ai pris un peu plus de temps...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    function uploader($global_files) {
    	echo '<pre>',print_r($global_files),'</pre>';
    }
    if(isset($_POST['envoyer'])) {
    	uploader($_FILES['fichier']);
    }
    ?>
    <form method="post" action="" enctype="multipart/form-data">
    <label for="fichier">fichier :</label>
    <input id="fichier" name="fichier" type="file" />
    <br /><br />
    <input name="envoyer" type="submit" value="envoyer" />
    </form>

    Règle n°1 du forum francophone : Parler le français...
    Pas de question technique par MP, le forum est fait pour çà, merci.

  7. #7
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Huntress a voulu écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function uploader($var) {
         echo '<pre>',print_r($var),'</pre>';
    }
    uploader($_FILES['fichier']);
    @adeltimple >> Vas-y tu peux faire une fonction !!

  8. #8
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 56
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Huntress Voir le message
    J'ai pris un peu plus de temps...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    function uploader($global_files) {
    	echo '<pre>',print_r($global_files),'</pre>';
    }
    if(isset($_POST['envoyer'])) {
    	uploader($_FILES['fichier']);
    }
    ?>
    <form method="post" action="" enctype="multipart/form-data">
    <label for="fichier">fichier :</label>
    <input id="fichier" name="fichier" type="file" />
    <br /><br />
    <input name="envoyer" type="submit" value="envoyer" />
    </form>
    Merci beaucoup!!!
    en effet je connaissais pas $global_files.
    j'ai testé ça marche trés bien.
    encore merci

  9. #9
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Citation Envoyé par adeltimple Voir le message
    en effet je connaissais pas $global_files.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function uploader($je_suis_le_maitre_du_monde) {
    	echo '<pre>',print_r($je_suis_le_maitre_du_monde),'</pre>';
    }
    Marcherait aussi

  10. #10
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 56
    Points : 43
    Points
    43
    Par défaut
    rhaaa!! ça ne marche plus!!! j'ai voulu l'essayer plus tard donc autre page.
    mon code est:
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <?php
     
    include('../secure/fonctions.php');
     
     
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
     
    </head>
     
    <body>
     
     
    <div id="total">
    	<div id="header">
    	<h1>Administration du site</h1>
    		<div id="menuhorizon">
    		</div>
     
    		<div id="multilangue">
    		</div>
     
    	</div>
     
     
    	<div id="content">
    		<div id="contenu">
    		<?php
    		if (isset($_SESSION['statut']))
    		{
    			if ($_SESSION['statut']==1 && isset($_SESSION['remp']))
    			{
    			$id=$_SESSION['remp'];
    			}
    			else
    			{			
    			$id=$_SESSION['iduser'];
    			}
     
    			if (!isset($_GET['action']))
    			{
     
    				echo "<form action='page.php?action=photo_user' method='post'>";
    				if ($photo=="unknow.png"){echo "<u>photo non définit</u>";}else{echo "<u>photo définit</u>";}
    				echo "<label for='fichier2'> fichier :</label><input id='fichier2' name='fichier' type='file' />
    				<input src='http:../images/52.png' width='25' height='25' border='0' alt='fermer' type='image' value='submit'></input></form></p>";
     
    			}
    			else
    			{
     
    			$var=$_POST['var'];
     
    			 if ($_GET['action']=="photo_user")
    				{
    				$nm=uploader($_FILES['fichier'],"img",1,1,1);
    				echo $nm;
    				}
     
     
     
    			}
    		}

    ma fonction est:
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    function uploader($global_files, $type,$form, $reduc, $thumb) 
    {
    set_time_limit(0); // pour pas me faire bloquer par un chargement long (grosse img ou vidéo)
    	$type_file = $_FILES['fichier']['type']; // on récupère le type du fichier
    	echo $type_file;
    	if ($type=="img")
    	{
    		if( strstr($type_file, 'jpg') or strstr($type_file, 'jpeg') or strstr($type_file, 'bmp') or strstr($type_file, 'gif') ) //on cherche dans la chaine la présence
    		{
    		$correct=true; //on retient que c'est bon
    		}
    		else // si pas une image 
    		{
    		$correct=false; //on retient l'erreur
    		}		
    	}
    	// je vais pouvoir évoluer en prévoyant la vidéo
     
    		if ($form==1)
    		{
    		$timeline = time();
    		$name_file = $timeline . "-" . $_FILES['fichier']['name'];
    		//pour supprimer les esapces
    		$name_file = preg_replace('/ /','',$name_file);
    		}
    		else
    		{
    		$name_file = $_FILES['fichier']['name'];
    		//pour supprimer les esapces
    		$name_file = preg_replace('/ /','',$name_file);
    		}
     
     
     
    			if ($correct)
    		{
    			if(move_uploaded_file($_FILES['fichier']['tmp_name'], '../upload/' . $name_file)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
    		     {
    			  $varup=true;
    			 }
    		     else //Sinon (la fonction renvoie FALSE).
    		     {
    		     $upload=false;
    			 $name_file="erreur";
    		     }
    		}
    		else
    		{
    		$name_file="erreur";
    		}
     
    		if ($type=="img" && $correct && $varup) //si c'est bien une image
    		{
    			if ($reduc==1) //mignature
    			{
    				$img_src='../upload/'.$name_file;
    				$size = GetImageSize($img_src); 
    				$img_larg = $size[0]; //largeur car 0
    				$img_haut = $size[1]; // hauteur car 1
     
    				if ($img_larg >600)
    				{
    				redim($img_src, 600 );
    				}
     
    				if ($img_haut >800)
    				{
    				redimh($img_src, 800 );
    				}
    			}
     
    			if ($thumb==1) //mignature
    			{
    				//maintenant on va faire une copie
    				copy("../upload/".$name_file,"../thumb/".$name_file);
    				$file = "../thumb/".$name_file; # L'emplacement de l'image à redimensionner. L'image peut être de type jpeg, gif ou png
    				redim($file, 200 ); //j'appel mon script de redimmensionnement avec la largeur seulement pour les proportions
    			}
    		}
    return $name_file;
    }
    Ma fonction me renvoie erreur (comme si les infos sur le fichier n'avaient pas été envoyées).
    La fonction est améliorable, je le sais, là n'est pas la question.

    si quelqu'un pourrait m'aider ça serait sympa

    par erreur j'entend "ereur"

  11. #11
    FoxLeRenard
    Invité(e)
    Par défaut
    Tu peux donner le message d'erreur avec le numéro de ligne (si on a le source PHP contenant la ligne

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/10/2014, 00h25
  2. Réponses: 4
    Dernier message: 01/10/2008, 11h37
  3. Passer des paramètres à une fonction dans before_filter
    Par abir84 dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 27/01/2008, 19h40
  4. Réponses: 2
    Dernier message: 21/07/2007, 01h12
  5. Réponses: 2
    Dernier message: 17/04/2007, 10h56

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