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 :

Upload d'un fichier


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de Nimothenicefish
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 190
    Points : 103
    Points
    103
    Par défaut Upload d'un fichier
    Bonjour,

    je réalise actuellement un formulaire d'envoie de mail, et je souhaite permettre à l'utilisateur d'envoyer un fichier. Voici mon code :

    Fichier tabrédiger.php ->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <form action=''  enctype="multipart/form-data method=post>
    			<div id="tabProfil">
    				<div class="contenuForm">
    					<div class="itemForm"><p><label>De :</label>	{$userMail}</p></div>
    					<div class="itemFormAlt"><p><label>Destinataire :</label>   {$LstEmail}</p></div>
    					<div class="itemForm"><p><label>Sujet du message :</label>   <input size="40" type="text" name="Fsujet" id="Fsujet" value=""  /></p></div>
    					<div class="itemFormAlt"><p>  <TEXTAREA cols="78" rows="6" name="Fmessage" id="Fmessage" value=""></TEXTAREA></p></div>
    					<div class="itemFormAlt"><p>Pi&egrave;ce jointe : <input type='file' name='Fpiecejointe' id='Fpiecejointe'/></p></div>
    				</div>
    			</div>
    		</form>
    Fichier class.mh.brick.messagerie.php ->
    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
    				if ($_FILES['Fpiecejointe']['error']) {
    			        switch ($_FILES['Fpiecejointe']['error']){
    			            case 1: // UPLOAD_ERR_INI_SIZE
    							echo"Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !";
    			                break;
    			            case 2: // UPLOAD_ERR_FORM_SIZE
    			                echo "Le fichier dépasse la limite autorisée dans le formulaire HTML !";
    			                break;
    			            case 3: // UPLOAD_ERR_PARTIAL
    			                echo "L'envoi du fichier a été interrompu pendant le transfert !";
    			                break;
    			            case 4: // UPLOAD_ERR_NO_FILE
    			                echo "Le fichier que vous avez envoyé a une taille nulle !";
    			                break;
    					}
    				}else{
    					// $_FILES['Fpiecejointe']['error'] vaut 0 soit UPLOAD_ERR_OK
    					// ce qui signifie qu'il n'y a eu aucune erreur
    					//Grâce à la fonction move_uploaded_files() il est possible de transférer l'image du répertoire temporaire vers un répertoire de destination
    					if ((isset($_FILES['nom_du_fichier']['fichier'])&&($_FILES['Fpiecejointe']['error'] == UPLOAD_ERR_OK)) {
    						$chemin_destination = $this->m_core->m_config['MH_URL'].'/core/bricks/messagerie/files/';
    						move_uploaded_file($_FILES['Fpiecejointe']['tmp_name'], $chemin_destination.$_FILES['Fpiecejointe']['name']);
     
    					}
    					$idUser = $_SESSION['user']->id;
    					$destinataireID = $this->m_core->m_con->get_var("SELECT id FROM acl_users WHERE email='".$_GET['email']."'");
    					$data_date_msg = date("Y-m-d h:i");
    					$this->m_core->m_con->query("INSERT INTO mbr_messages (members_id, date_msg, sujet, message, destinataire_id, file) VALUES ('".$idUser."', '".$data_date_msg."', '".$_GET['Fsujet']."', '".$_GET['Fmessage']."','".$destinataireID."', '".$_FILES['Fpiecejointe']['name']."');");
    				}
    Mon problème est que le fichier ne se uploade pas. $_Files['Fpiecejointe']['name'] ne contient rien du tout, pourtant ($_FILES['Fpiecejointe']['error'] == UPLOAD_ERR_OK renvoie vrai.

    Merci de votre compréhension

  2. #2
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    salut,

    je crois que cette ligne pourrait être la cause
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action=''  enctype="multipart/form-data method=post>
    tu peu la corriger par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action=''  enctype="multipart/form-data" method="post">
    A +

  3. #3
    Membre régulier Avatar de Nimothenicefish
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 190
    Points : 103
    Points
    103
    Par défaut
    Oui j'ai effectivement trouvé cette erreur après. Cependant, ca n'a pas résolue mon problème de départ...
    Dans ma class*.php il m'est pas possible de récuperer les informations que contient $_FILE['nomfichier']

  4. #4
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    salut,

    ajoute ceci à ton formulaire, tout en précisant une taille maximale du fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type = "hidden" name="MAX_FILE_SIZE" value="[une_valeur]">
    de grâce, ajoute-le juste après le input file

  5. #5
    Membre régulier Avatar de Nimothenicefish
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 190
    Points : 103
    Points
    103
    Par défaut
    cela ne marche pas
    j'ai fait un test en redirigeant mon formulaire vers un fichier php pour voir si je pouvais recuperer $_FILES et ca marche
    sauf que si je redirige mon formulaire vers ma classe, il m'est impossible d'en tiré quelques choses :/

  6. #6
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    à ce niveau là j'ai pas bien compris, juste une question, dans ton serveur tu vois pas le fichier uploadé ?

  7. #7
    Membre régulier Avatar de Nimothenicefish
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 190
    Points : 103
    Points
    103
    Par défaut
    Si je redirige mon formulaire vers un fichier php tout simple qui va ensuite récupérer les valeurs contenu dans $_File pour uploader le fichier dans un autre répertoire. Là ça marche et je peux voir le fichier uploader dans le répertoire prédéfinie.
    Cependant si je redirige mon formulaire vers ma class*.php, je n'arrive pas à récupérer le contenu de la variable $_File, c'est comme si il n'y avait rien dedans.

Discussions similaires

  1. [Upload] Droits des fichiers
    Par flexx dans le forum Langage
    Réponses: 7
    Dernier message: 01/12/2005, 19h14
  2. [Upload] telecherger un fichier
    Par fraizas dans le forum Langage
    Réponses: 2
    Dernier message: 17/11/2005, 16h35
  3. Réponses: 6
    Dernier message: 06/10/2005, 20h54
  4. [Servlet][Tomcat] Upload d'un fichier sur le serveur
    Par gandalf_le_blanc dans le forum Tomcat et TomEE
    Réponses: 7
    Dernier message: 19/04/2004, 13h56

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