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] Probleme de syntaxe lors d'un upload [Fait]


Sujet :

Langage PHP

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 098
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 098
    Points : 946
    Points
    946
    Par défaut [Upload] Probleme de syntaxe lors d'un upload
    Bonjour,
    J'utilise un code qui marchait bien

    J'ai sur une page un petit formulaire avec un fichier a upload.

    Sur la meme page j'ai une condition qui controle si le formulaire a ete envoyé.

    Si oui l'upload fonction (et les envoie des donnee aussi (en $_GET)) si non, le code de l'upload n'est pas chargé

    Jusqu a la tout ce pas bien.

    mon input file est comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="file" name="f_fichier" />
    Mon code qui se charge de recuperer les donnees du fichier est comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $Fichier_temp=$_FILES['f_fichier']['tmp_name']; (ligne 2)
    $Fichier_name=$_FILES['f_fichier']['name']; (ligne 3)
    A ce niveau, mon php me genere ce message d'erreur:
    Notice: Undefined index: f_fichier in /Applications/MAMP/htdocs/cdscootershop/include/uploadftp.inc.php on line 2

    Notice: Undefined index: f_fichier in /Applications/MAMP/htdocs/cdscootershop/include/uploadftp.inc.php on line 2

    Notice: Undefined index: f_fichier in /Applications/MAMP/htdocs/cdscootershop/include/uploadftp.inc.php on line 3

    Notice: Undefined index: f_fichier in /Applications/MAMP/htdocs/cdscootershop/include/uploadftp.inc.php on line 5
    Mais pourquoi???

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    L'envoi de fichier ne se fait pas en GET de plus je pense qu il doit y avoir d autres erreurs dans le formulaire (code que tu n as pas mis lol)

    Voila un tuto :

    Upload de fichiers en PHP

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 098
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 098
    Points : 946
    Points
    946
    Par défaut
    Salut
    merci pour ta reponse,
    je vais tout passer en post alors, car mon code marchait mais dans mon expérience précédente j'était en post.
    Je vais ca et je regarde apres le resultat.
    Merci

  4. #4
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 098
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 098
    Points : 946
    Points
    946
    Par défaut
    Ben ca va pas mieux


    Voila le code qui fait l'upload
    mais le code bloque aux deux premiere lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <tr>
    <td>Image : </td>
    <td><input type="file" name="f_fichier" /></td>
    </tr>
    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
     
    $Fichier_temp=$_FILES['f_fichier']['tmp_name'];
    $Fichier_name=$_FILES['f_fichier']['name'];
    // enlever les accents
    $Fichier_name = strtr($Fichier_name,
    'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
    'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    // remplacer les caracteres autres que lettres, chiffres et point par _
    $Fichier_name = preg_replace('/([^.a-z0-9]+)/i', '_', $Fichier_name);
     
    $Fichier_taille = filesize($_FILES['f_fichier']['tmp_name']);
     
    		$extension = strrchr($_FILES['f_fichier']['name'], '.');// récupère la partie de la chaine à partir du dernier
    		$extension = substr($extension, 1); // récupère la partie après le .
    		$extensions_autorisees = array(  
    			'gif' => "Image GIF", 
    			'jpg' => "Image JPEG",
    			'JPG' => "Image JPEG",
    			'png' => "Image PNG", 
    		 ); 
    		 if(array_key_exists($extension,$extensions_autorisees)){
    			define('CFG_FTP_SERVER', 'localhost');    // Adresse du FTP
    			define('CFG_FTP_USERNAME', 'user');    // Nom d'utilisateur
    			define('CFG_FTP_PASSWORD', 'pw');    // Mot de passe
    			define('CFG_FTP_TIMEOUT', 2);        // Définition du délai de connexion en secondes	
     
    			if(!empty($_FILES['f_fichier']) && $_FILES['f_fichier']['error'] == UPLOAD_ERR_OK && is_uploaded_file($_FILES['f_fichier']['tmp_name'])){
    				$fichier_a_uploader = $_FILES['f_fichier']['tmp_name'];
    				$dossier_destination = '/Applications/MAMP/htdocs/cdscootershop/img/occasions/'.$Fichier_name;
    				$conn_id = @ftp_connect(CFG_FTP_SERVER);    // Création de la connexion au FTP
    				if(empty($conn_id)){
    					echo 'Échec de connexion à ' . CFG_FTP_SERVER.'<br />';
    				}else{
    					// Définition du délai de connexion à 2 secondes
    					ftp_set_option($conn_id, FTP_TIMEOUT_SEC, CFG_FTP_TIMEOUT);
     
    					echo "<b>Connecté au serveur</b>\n<br />";
     
    					// Identification avec le nom d'utilisateur et le mot de passe
    					$login_result = @ftp_login($conn_id, CFG_FTP_USERNAME, CFG_FTP_PASSWORD);
     
    					if(!$login_result){
    						echo "Échec d'identification FTP. Nom d'utilisateur ou mot de passe incorrect<br />";
    					}else{
    						// Tentative de chargement sur le serveur FTP
    						if(ftp_put($conn_id, $dossier_destination, $fichier_a_uploader, FTP_BINARY)){
    							echo "Le fichier:<br><em>".$Fichier_name." (".($Fichier_taille/1000)." Ko)</em><br> a été chargé avec succès\n<br />";
    							//chmod ("../uploaded/".$_FILES['fichier']['name'], 0644);
    						}else{
    							echo "Il y a eu un problème lors du chargement du fichier <br> <em>".$Fichier_name."</em><br>\n<br />";
    						}
    					}
    					// Fermeture de la connexion
    					ftp_close($conn_id);
    					echo '<b>Deconnexion</b>';
    				}
    			}
    		 }else{
    		  	echo 'Le format de votre fichier ('.$Fichier_name.') n\'est pas autorisé pour le téléchargement';
    		 }
     
    ?>

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 098
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 098
    Points : 946
    Points
    946
    Par défaut
    ok, j'ai trouvé,

    J'avais oublié de mettre ceci dans ma balise form

    enctype="multipart/form-data"

    Ca va mieux

  6. #6
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonsoir,
    Utilises-tu enctype="multipart/form-data" dans ton formulaire ?
    Sinon va faire un tour ici comme te l'a indiqué RideKick

    Lorsque vous souhaitez envoyer un fichier au serveur par formulaire, vous devez préciser l'enctype, c'est à dire le type d'encodage du fichier. L'enctype à utiliser est multipart/form-data.
    C'est très important car si vous ne le faites pas, vous ne pourrez pas uploader votre fichier !
    Votre formulaire vide donnera donc :
    Code pour ouvrir et fermer le formulaire

    <form method="POST" action="upload.php" enctype="multipart/form-data">
    <!-- Le contenu du formulaire est à placer ici... -->
    </form>
    P.S. : Bon, et bien j'ai pas été assez rapide .....

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

Discussions similaires

  1. [Upload] gestion des erreurs lors d'un upload de fichiers
    Par sarah65536 dans le forum Langage
    Réponses: 6
    Dernier message: 22/04/2009, 09h08
  2. [Upload] Probleme de renommage lors d'un upload
    Par Aenima dans le forum Langage
    Réponses: 3
    Dernier message: 02/04/2008, 15h34
  3. [Upload] Problèmes de chmod lors d'un upload
    Par Ludo75 dans le forum Langage
    Réponses: 7
    Dernier message: 29/12/2006, 12h15
  4. [Upload] Erreur de mémoire lors d'un upload
    Par alpking dans le forum Langage
    Réponses: 3
    Dernier message: 10/11/2006, 10h35
  5. [Upload] Erreur 'Action annulée' lors d'un upload
    Par SegmentationFault dans le forum Langage
    Réponses: 8
    Dernier message: 31/07/2006, 15h12

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