Problème avec formulaire d'upload de fichier

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


biscuit
WRInaute passionné
WRInaute passionné
 
Messages: 519
Inscription: Lun Juin 05, 2006 10:37

Problème avec formulaire d'upload de fichier

Message le Dim Aoû 12, 2007 12:48

Salut toutes et tous,

J'ai fait un formulaire d'envoi de fichier et tous se passe bien, sauf un truc : quand le visiteur propose un fichier qui n'existe pas, le script tourne dans le vide... Comment savoir si le fichier proposer existe ?

Pour info voilà comment je traite mon formulaire :
Code: Tout sélectionner
$file = trim($_FILES["pj"]["name"]);
$tmp_file = $_FILES["pj"]["tmp_name"];
$file_size = $_FILES["pj"]["size"];
$file_type = $_FILES["pj"]["type"];
$file_error = $_FILES["pj"]["error"];

switch ($file_error) {
   case 6: $error_text = "Erreur: Un dossier temporaire est manquant!"; break;
   case 4: $error_text = "Erreur: aucun fichier n'a été téléchargé!"; break;
   default: case 5: case 3: $error_text = "Une erreur est survenue durant le téléchargement, merci de bien vouloir reéssayer"; break;
   case 2: case 1: $error_text = "Erreur: Le fichier téléchargé excède la taille autorisée. (max 5 Mo)"; break;
   case 0:
      /* Aucune erreur lors du transfert,
          Alors on test s'il s'agit bien d'une image */
      
      if (is_uploaded_file($tmp_file)) {
         
         $nom_fichier = time() ."_".$file;
         $savefile = $_SERVER['DOCUMENT_ROOT'] . "articles/" .  $nom_fichier;
         move_uploaded_file($tmp_file, $savefile);
         $confirm = true;
         
      
      } else {
         $error_text = "Le fichier n'existe pas.";
      }
   break;
} // switch


bproductiv
WRInaute accro
WRInaute accro
 
Messages: 2853
Inscription: Lun Déc 27, 2004 16:29

Message le Lun Aoû 13, 2007 9:28

tu te prend la tete pour rien, tope une bonne classe et ca ira tout seul


biscuit
WRInaute passionné
WRInaute passionné
 
Messages: 519
Inscription: Lun Juin 05, 2006 10:37

Message le Lun Aoû 13, 2007 10:27

Les classes et moi on n'est pas copain... mais ça me semble un peu compliqué...

Bref, je laisse tombé, le visiteur n'a qu'à proposer un fichier qui existe :P


rog
WRInaute accro
WRInaute accro
 
Messages: 1662
Inscription: Jeu Sep 21, 2006 2:32

Message le Lun Aoû 13, 2007 15:04

moi je verifie la taille de $file_size = $_FILES["pj"]["size"];

rog


biscuit
WRInaute passionné
WRInaute passionné
 
Messages: 519
Inscription: Lun Juin 05, 2006 10:37

Message le Lun Aoû 13, 2007 15:14

Ben le problème, c'est qu'une fois le formulaire validé... la page reste bloquée là (et je ne comprend vraiment pas), cela ne va même pas jusqu'au traitement des données...


rog
WRInaute accro
WRInaute accro
 
Messages: 1662
Inscription: Jeu Sep 21, 2006 2:32

Message le Lun Aoû 13, 2007 18:34

nop

c'est du style

if($_FILES["pj"]["size"] < 1){
redirection vers page avec message d'erreur


biscuit
WRInaute passionné
WRInaute passionné
 
Messages: 519
Inscription: Lun Juin 05, 2006 10:37

Message le Lun Aoû 13, 2007 18:42

Oui j'avais bien compris... me suis mal exprimé.

En fait ce que je n'arrive pas à comprendre c'est quand je clique sur "submit" et que le champ file contient un fichier qui exite, pas de problème, le formulaire est soumis la page rechargée et le formulaire traité.

Quand il s'agit d'un fichier qui n'existe pas... le formulaire est soumis (j'ai mis un onclick disabled, mais la page ne se recharge pas... donc le formulaire n'est pas traité... si je met un test sur la taille du fichier, le test n'est donc jamais effectué...

Bizarre !?


rog
WRInaute accro
WRInaute accro
 
Messages: 1662
Inscription: Jeu Sep 21, 2006 2:32

Message le Lun Aoû 13, 2007 19:59

ce doit etre une erreur de logique dans les conditions

mais comme tu n'as pas posté ce qui se passe apres ton switch on ne peut pas voir

pour les controles d'erreur je prefere les elseif

rog

alex1025
WRInaute discret
WRInaute discret
 
Messages: 52
Inscription: Dim Jan 09, 2005 17:43

Message le Mer Aoû 15, 2007 11:20

Oui tu peux vérifier le poids :wink:

Exemple:

Code: Tout sélectionner
$poid = filesize($fichier)/1024;   
if ($poid <= 1 )
{
echo 'Fichier manquant';
}
else
{
// ici tu traites ton fichier avec ta fonction
}



Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités