Recherche rapide

N'oubliez pas que la publicité fait vivre AZ PHP



N'oubliez pas que la publicité fait vivre AZ PHP
Consulter les anciens messages
 
| Retour au Forum | Poster une réponse |
Sujet :    Uploader fichier
de: bigbo26
posté le: 29-07-2009 à 17:46:27
***.wanadoo.fr

Bonsoir, je débute et j'ai un petit souci avec l'imbrication des if, dans mon fichier php. Donc mon formulaire ne peux fonctionner correctement, et je ne peus pas uploader de
fichier sur mon serveur.

Voici mon code:


<?php


//Taille maximum
$MAX_FILE_SIZE = 8388608;




//On simplifie le nom des variables $_FILES. Variables récupérée par methode POST du formulaires
$tmp=$_FILES['message']['tmp_name'];
$name=$_FILES['message']['name'];
$size=$_FILES['message']['size'];
$type=$_FILES['message']['type'];
$erreur=$_FILES['message']['error'];

// Tableau array des différents types
$extensions_autorisees= array('jpg','gif','jpeg','png','doc','docx','rtf','pdf','xlsx','xls','bmp','txt','zip');




// Test pour savoir si le fichier a bien été envoyé et s'il n'y a pas d'erreur
if (isset($_FILES['message']) AND $erreur > 0)
echo " Une erreur est survenue lors du transfert"; // La variable vaut zéro si il n'ya pas d'erreur!
{
if ($_size>=$MAX_FILE_SIZE) echo "Le fichier est trop gros! Merci de bien vouloir le compresser où d/'essayer de faire autrement."; //test pour éviter que le
fichier soit trop gros (1Mo = 1 048 576 octets)
{

if(file_exists($chemin.$name)) echo("Fichier déjà existant, veuillez donner un autre nom à votre fichier.");
{

$infosfichier = pathinfo($_name); //Vérification de l'extension du fichier envoyé
//La fonction pathinfo renvoie un array contenant entre autres l'extension du fichier dans $infosfichier['extension'].
//On stocke ça dans une variable $extension_telechargée.

$extensions_upload= $infosfichier['extension'];

if (in_array($extensions_upload,$extensions_autorisees))

//Une fois l'extension récupérée, on peut la comparer à un tableau d'extensions autorisées (un array) et vérifier si
//l'extension récupérée fait bien partie des extensions autorisées à l'aide de la fonction in_array().
{

//On crée une variable contenant le répertoire de destination

$uploadpath="/wamp/www/uploads/";

//On déplace le fichier du dossier temporaire vers le dossier de destination

move_uploaded_file($tmp_name,$uploadpath.$name);


//On affiche les différentes variables

echo '"Le fichier :".$name "a été correctement envoyé"';
echo "<br>Taille du fichier :".$size;
echo "<br>Type de fichier :".$type;
echo "<br>Nombre d'erreur survenues lors du transfert".$erreur;

//tmp= fichier temporaire dans lequel est placé le fichier lors de sa vérification
}
}
}
}

?>



Sujet :    Uploader fichier
de:Kaimite
posté le: 31-08-2010 à 14:51:47
***.proxad.net

Salut,

Tu peux essayer de proceder autrement pour ne pas avoir a imbriquer les if...

Par exemple :

<?php
// Je definie une variable a true
$fichierValide = true;
$messagesErreurs = array();

// Je fais mes tests
if (isset($_FILES['message']) AND $erreur > 0) {
$fichierValide = false;
$messagesErreurs[] = "Une erreur est survenue lors du transfert";
}

if ($_size>=$MAX_FILE_SIZE) {
$fichierValide = false;
$messagesErreurs[] = "Le fichier est trop gros! Merci de bien vouloir le compresser où d/'essayer de faire autrement.";
}

if(file_exists($chemin.$name)) {
$fichierValide = false;
$messagesErreurs[] = "Fichier déjà existant, veuillez donner un autre nom à votre fichier.";
}

$infosfichier = pathinfo($_name);
if (!in_array($infosfichier['extension'],$extensions_autorisees)) {
$fichierValide = false;
$messagesErreurs[] = "Le format de fichier est invalide";
}

// Tous les tests sont effectués, je test si le fichier est valide

if ( $fichierValide === true ) {

if ( move_uploaded_file($tmp_name,$uploadpath.$name) !== false ) {
echo '"Le fichier :" . $name . "a été correctement envoyé"';
echo "<br>Taille du fichier :" . $size;
echo "<br>Type de fichier :" . $type;

} else {
echo "Erreur lors de l'upload du fichier sur le serveur";
}

} else {
echo "Une ou plusieurs erreurs empechent la mise en ligne du fichier : <br />";
echo implode("<br />", $messagesErreurs);
}

?>

Pense également à vérifier si le dossier cible n'est pas vérouillé en écriture...

@++ Kaimite


| Retour au Forum | Poster une réponse |


Accès restreint !

Information:
L'accès à cet espace est restreint, vous devez être membre de az-php.
Pour vous inscrire, choisissez "espace membres" dans le menu , ou cliquez ici pour vous inscrire
Nous vous remercions de votre compréhension.
AZ-PHP
Vous connecter si vous êtes déjà inscrit(e)
Pseudo
Password
 
    © Copyright 2005 - az-php.com - tous droits réservés , reproduction interdite . Hébergé par 1hebergeur.com [ mentions légales & copyright ]