2010-08-02 6 views
0

Ok, donc j'ai un formulaire HTML, 10 fichiers sont téléchargés. 6 images et 4 pdf. certains de ces fichiers sont requis d'autres non. Mon problème est quand mon script vérifie les données et retaille à l'utilisateur qu'il/elle a des erreurs toutes les entrées de fichier sont vierges ... et si l'utilisateur re-soumet ... les fichiers ne sont pas enregistré.Formulaire soumettant plusieurs fichiers ne conservant pas les données

Ce formulaire contient également d'autres champs que les fichiers.

J'ai essayé de mettre $_POST dans la valeur de mes entrées mais cela ne repeuple pas avec les noms de fichiers locaux.

Je voudrais que mes utilisateurs ne doivent pas entrer tous les fichiers qu'ils veulent télécharger s'ils ont fait 1 ou quelques erreurs.

édité: SO est-ce normal que le poste ne me donne pas le nom de fichier? est le fichier encore enregistré en tant que temp sur le serveur?

Répondre

0

L'attribut de valeur du type d'entrée de fichier n'existe pas, car cela est un risque de sécurité. Vous ne pouvez pas lire ou définir la valeur de celui-ci (côté client ou serveur) de sorte que même si vous aviez le chemin local sur vous pouvez l'ordinateur de l'utilisateur ne le remplir.

Je voudrais essayer de faire une sorte de côté client (même via ajax) validation du formulaire avant de soumettre le formulaire. S'ils soumettent le formulaire, les fichiers seront téléchargés et devraient toujours se trouver dans le répertoire temporaire (au moins jusqu'à ce que la récupération de place commence). Peut-être sur erreur écrire les informations dans $ _FILES à la session et au lieu de montrer la boîte de dialogue de téléchargement de fichier, montrer une icône pour le fichier pour essayer de leur faire savoir que vous avez le fichier, mais ils doivent réparer le formulaire. Ensuite, après avoir soumis les corrections, vous pouvez obtenir les données de la session et essayer de continuer.

+0

y'a été à la recherche d'une réponse toute la journée et cela ressemble beaucoup à la façon de faire. J'ai donc commencé à ajouter la validation javascript avant son envoi au serveur. – StiGMaT

0

Assurez-vous de spécifier les paramètres appropriés pour:

  • file_uploads
  • upload_max_filesize
  • memory_limit
  • max_execution_time
  • post_max_size

Voir:

Assurez-vous également que:

  • Vous avez spécifié le enctype="multipart" dans le form
  • Vérifiez le tableau des fichiers avec print_r($_FILES);
+0

mes paramètres devraient être tous ok.tout fonctionne si l'utilisateur ne fait aucune erreur. mais s'il y a 1 miustake la page recharge. existe-t-il un moyen d'obtenir le chemin d'accès au fichier local et le nom de fichier de sorte que s'ils font une erreur, ils n'ont pas à remplir le formulaire. – StiGMaT

+0

mon print_r sur le premier poste soumet les noms de fichiers et les données de l'envoi je corrige mes erreurs et re-soumettre aucune image ne sortent. – StiGMaT

+0

Vous pouvez obtenir le nom de '$ _FILES ['fieldName'] ['name']' – Sarfraz

0

Au lieu de les rediriger Retour à la forme utiliser un peu de JavaScript et faire navigateur client pour revenir une page. Ensuite, il devrait déposer qui ont été sélectionnés auparavant.
Vous pouvez utiliser quelque chose comme:

<body onLoad="javascript:history.go(-1)">...</body> 
Questions connexes