Comment puis-je définir la valeur de cela?
<input type="file" />
javascript
html
file-upload
preset
Alon Gubkin
la source
la source
Réponses:
Vous ne pouvez pas, pour des raisons de sécurité.
Imaginer:
Vous ne voulez pas que les sites Web que vous visitez puissent le faire, n'est-ce pas? =)
la source
Tu ne peux pas.
La seule façon de définir la valeur d'une entrée de fichier est par l'utilisateur de sélectionner un fichier.
Cela se fait pour des raisons de sécurité. Sinon, vous seriez en mesure de créer un JavaScript qui télécharge automatiquement un fichier spécifique à partir de l'ordinateur du client.
la source
Pas une réponse à votre question (à laquelle d'autres ont répondu), mais si vous voulez avoir une fonctionnalité d'édition d'un champ de fichier téléchargé, ce que vous voulez probablement faire est:
<input>
balise pour télécharger un nouveau fichierla source
<input type="file" />
image du produit existante? Je peux montrer l'image existante dans une<img />
balise mais lorsque je soumets, le fichier ne passe pas.Tu ne peux pas. Et c'est une mesure de sécurité. Imaginez si quelqu'un écrit un JS qui définit la valeur d'entrée du fichier dans un fichier de données sensible?
la source
Comme tout le monde ici l'a déclaré: Vous ne pouvez pas télécharger un fichier automatiquement avec JavaScript.
TOUTEFOIS! Si vous avez accès aux informations que vous souhaitez envoyer dans votre code (c.-à-d. Pas à passwords.txt), vous pouvez le télécharger en tant que type blob , puis le traiter comme un fichier.
Ce que le serveur finira par voir ne pourra pas être distingué de quelqu'un qui définit réellement la valeur de
<input type="file" />
. L'astuce, finalement, est de commencer une nouvelle XMLHttpRequest () avec le serveur ...Alors, pourquoi pourriez-vous utiliser cela? Je l'utilise pour télécharger des éléments de toile HTML5 au format jpg. Cela évite à l'utilisateur d'avoir à ouvrir un
file
input
élément, uniquement pour sélectionner l'image locale en cache qu'il vient de redimensionner, de modifier, etc. Mais cela devrait fonctionner pour tout type de fichier.la source
1) Le problème de la valeur par défaut dans une entrée de fichier N'EST PAS "fait pour des raisons de sécurité", mais les navigateurs "n'ont tout simplement pas réussi à l'implémenter, sans raison valable": voir ce rapport détaillé
2) Une solution simple peut être d'utiliser une entrée de texte au-dessus de l'entrée de fichier, comme ici . Bien sûr, vous avez besoin de code pour envoyer le fichier, en utilisant maintenant la valeur en entrée de texte et non l'entrée de fichier.
Dans mon cas, en faisant une application HTA, ce n'est pas un problème, je n'utilise pas du tout de formulaire.
la source
Définissez en html:
En JS:
Après:
la source
En fait, nous pouvons le faire. nous pouvons définir la valeur par défaut du fichier en utilisant le contrôle webbrowser en c # à l'aide de la bibliothèque FormToMultipartPostData. Nous devons télécharger et inclure cette bibliothèque dans notre projet. Webbrowser permet à l'utilisateur de naviguer dans les pages Web à l'intérieur du formulaire. Une fois la page Web chargée, le script à l'intérieur du webBrowser1_DocumentCompleted sera exécuté. Alors,
Reportez-vous au lien ci-dessous pour le téléchargement et la référence complète.
https://www.codeproject.com/Articles/28917/Setting-a-file-to-upload-inside-the-WebBrowser-com
la source