73 votes

Comment conserver le type de saisie = valeur du champ de fichier après l'échec de la validation dans ASP.NET MVC?

J'ai un formulaire simple dans une application MVC que j'ai créée. Il contient un champ de fichier afin que les utilisateurs puissent télécharger une image. Tout fonctionne très bien.

Le problème, c'est que si la validation du formulaire échoue, le contenu du champ de fichier est perdu (les autres champs restent renseignés, par exemple, HtmlHelpers!). Comment garder le champ de fichier rempli après un échec de validation?

TIA!

64voto

Alexander Prokofyev Points 14183

Les navigateurs sont conçus de cette manière en raison des risques de sécurité. Il est impossible de définir la valeur de la zone de saisie du fichier dans une source HTML ou en Javascript. Sinon, un script malveillant pourrait voler un fichier privé sans l'attention de l'utilisateur.

Il y a une information intéressante sur le sujet.

3voto

Michael Points 441

Autant que je sache, vous ne pouvez pas définir la valeur d'une zone de saisie de fichier HTML. Je suggère de coupler la zone de saisie du fichier avec une étiquette ou une zone de texte.

Ensuite, vous pouvez le renseigner avec la valeur de la zone de saisie du fichier à renvoyer ultérieurement.

1voto

gokkor Points 229

Il existe des téléchargeurs de fichiers Flash. Essayez l'un d'entre eux. Certains d'entre eux retombent même dans la zone de saisie de fichier normale si les scripts Flash et Java ne sont pas pris en charge. Je conseille de chercher des plugins jQuery.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X