Remarque:
La ou les réponses ci-dessous reflètent l'état des navigateurs hérités en 2009. Vous pouvez désormais définir la valeur de l'élément de saisie de fichier via JavaScript en 2017.
Voir la réponse dans cette question pour plus de détails ainsi qu'une démo:
Comment définir la valeur d'entrée du fichier par programme (c'est-à-dire lorsque vous faites glisser des fichiers)?
J'ai un site Web qui permet à l'utilisateur de télécharger un fichier plusieurs fois pour le traitement. Pour le moment, je n'ai qu'un seul fichier en entrée, mais je veux pouvoir me souvenir du choix des utilisateurs et l'afficher à l'écran.
Ce que je veux savoir faire, c’est qu’après la sélection d’un fichier par un utilisateur, je retiens son choix et affiche à nouveau le fichier saisi avec le fichier présélectionné lors du rechargement de la page. Tout ce que j'ai besoin de savoir, c'est comment se rappeler et repeupler une entrée de fichier.
Je suis également ouvert aux approches qui n'utilisent pas une entrée de fichier (si cela est possible).
J'utilise JQuery
Créez un champ de saisie sur votre formulaire. Lorsque l'utilisateur sélectionne un fichier, copiez le résultat dans ce champ, par exemple:
jQuery('#inFile').change(
function(){ jQuery('#inCopy').val( jQuery('#inFile').val() ); }
);
En réalité, le résultat n'est pas copié exactement, mais "C:/fakepath/SELECTED_FILE_NAME". Bien que vous ne soyez pas autorisé à définir la valeur d'une entrée de fichier, vous pouvez définir la valeur du champ de saisie de texte sans le "C:/fakepath /" lors de la préparation du formulaire par le serveur.
Maintenant, lorsque le serveur récupère le formulaire, vérifiez le champ de saisie de texte. S'il commence par "C:/fakepath /", l'utilisateur doit avoir sélectionné un nouveau fichier. Téléchargez donc sa nouvelle sélection. Si ce n'est pas le cas, l'utilisateur a opté pour la sélection précédente, ce qui ne devrait pas poser de problème puisque, conformément à la question initiale, le choix précédent a déjà été chargé et DEVRAIT (au moins avec une programmation appropriée, il PEUT être) sur le serveur.
Au risque de marcher sur les informations formidables fournies par GitaarLAB, je pourrais suggérer que DaveWalley est très proche et offre une solution pratique au problème. Vous m'avez beaucoup aidé tous les deux, alors merci.
Mon message à retenir est,
Donc, un cas d'utilisation de base serait:
Vous devrez peut-être effectuer un peu plus de travail pour gérer une validation "* obligatoire", mais c'est une autre histoire.