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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Nimothenicefish
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 190
    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
    Membre Expert
    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
    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 confirmé Avatar de Nimothenicefish
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 190
    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
    Membre Expert
    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
    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 confirmé Avatar de Nimothenicefish
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 190
    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
    Membre Expert
    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
    Par défaut
    à ce niveau là j'ai pas bien compris, juste une question, dans ton serveur tu vois pas le fichier uploadé ?

Discussions similaires

  1. [Upload] Droits des fichiers
    Par flexx dans le forum Langage
    Réponses: 7
    Dernier message: 01/12/2005, 20h14
  2. [Upload] telecherger un fichier
    Par fraizas dans le forum Langage
    Réponses: 2
    Dernier message: 17/11/2005, 17h35
  3. Réponses: 6
    Dernier message: 06/10/2005, 21h54
  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, 14h56

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