2012-03-15 2 views
0

J'ai un formulaire html avec une entrée de texte et une entrée de fichier (logo image). Maintenant, s'il y a une erreur avec l'une des entrées de texte (comme la longueur n'est pas valide) lorsque l'utilisateur clique sur le bouton d'envoi [client-> serveur (php) -> client], le contenu de l'entrée est effacé ce qui est ennuyeux!entrée de fichier de formulaire est effacée lors de l'actualisation

Je définis d'autres entrées de texte avec les dernières valeurs lorsque la page soumet une erreur, mais je ne peux pas avec une entrée de fichier. J'ai essayé de définir la valeur d'entrée de fichier avec document.getElementsByName('logo')[0].value; pour la mettre dans une valeur cachée mais j'ai obtenu le chemin "C: \ fakepath \ random-0690.JPG" ... c'est tellement choquant, je sais que c'est pour des raisons de sécurité mais est choquant ...

Comment puis-je résoudre ce problème? Merci.

Répondre

0

J'ai trouvé la réponse!

C'est simple, j'ai créé un appel AJAX qui envoie le contenu du formulaire et valide si tout va bien. Ensuite, s'il y a des erreurs, affichez-les (et gardez les valeurs et les pièces jointes dans le formulaire). Sinon: envoyez le formulaire de poste et le fichier joint.

1

Ce n'est pas possible. Vous ne pouvez pas définir à distance la valeur d'une entrée de fichier comme mesure de sécurité de base. Si vous le pouvez, alors il serait trivial de faire <input type="file" value="/etc/passwd" name="pwn3d" /> et voler n'importe quel fichier que vous voulez de la machine de l'utilisateur.

Il n'y a rien de choquant à ce sujet. Vivez avec, ou profitez de vos fichiers volés.

+0

ouais j'ai compris ce scénario, mais theres une alternative? – dctremblay

+0

Non. Ce n'est pas permis, période. Pensez-vous que les utilisateurs hostiles seront gentils et n'utiliseront aucune "alternative" parce que le W3C a dit "jolie s'il vous plaît avec du sucre sur le dessus"? –

Questions connexes