Hinweis:
Die folgenden Antworten und Kommentare spiegeln den Status älterer Browser im Jahr 2009 wider. Jetzt können Sie den Wert des Dateieingabeelements 2017 mithilfe von JavaScript und einem dataTransfer- oder FileList-Objekt dynamisch / programmgesteuert festlegen.
In der Antwort in dieser Frage finden Sie Details sowie eine Demo:
Wie wird der Dateieingabewert programmgesteuert festgelegt (dh beim Ziehen von Dateien per Drag & Drop)?
Wie kann ich den Wert festlegen?
<input type="file" />
javascript
html
file-upload
preset
Alon Gubkin
quelle
quelle
Antworten:
Sie können aus Sicherheitsgründen nicht.
Vorstellen:
Sie möchten nicht, dass die von Ihnen besuchten Websites dies tun können, oder? =)
quelle
Das kannst du nicht.
Die einzige Möglichkeit, den Wert einer Dateieingabe festzulegen, besteht darin, dass der Benutzer eine Datei auswählt.
Dies erfolgt aus Sicherheitsgründen. Andernfalls können Sie ein Javascript erstellen, das automatisch eine bestimmte Datei vom Clientcomputer hochlädt.
quelle
Keine Antwort auf Ihre Frage (die andere beantwortet haben), aber wenn Sie einige Bearbeitungsfunktionen für ein hochgeladenes Dateifeld haben möchten, möchten Sie wahrscheinlich Folgendes tun:
<input>
Tag zum Hochladen einer neuen Dateiquelle
<input type="file" />
vorhandene Produktbild festlegen , wenn ich Produktinformationen bearbeiten möchte (das Produktbild nicht ändern möchte) ? Ich kann ein vorhandenes Bild in einem<img />
Tag anzeigen, aber wenn ich es abschicke, wird keine Datei übergeben.Das kannst du nicht. Und es ist eine Sicherheitsmaßnahme. Stellen Sie sich vor, jemand schreibt ein JS, das den Dateieingabewert in eine vertrauliche Datendatei setzt?
quelle
Wie alle anderen hier gesagt haben: Sie können eine Datei nicht automatisch mit JavaScript hochladen.
JEDOCH! Wenn Sie Zugriff auf die Informationen haben, die Sie in Ihrem Code senden möchten (dh nicht passwords.txt), können Sie diese als Blob- Typ hochladen und dann als Datei behandeln.
Was der Server am Ende sieht, ist nicht von jemandem zu unterscheiden, der tatsächlich den Wert von festlegt
<input type="file" />
. Der Trick besteht letztendlich darin, eine neue XMLHttpRequest () mit dem Server zu beginnen ...Also, wofür könnten Sie dies möglicherweise verwenden? Ich benutze es zum Hochladen von HTML5-Canvas-Elementen als JPGs. Dies erspart dem Benutzer die Mühe, ein
file
input
Element öffnen zu müssen , nur um das lokale, zwischengespeicherte Bild auszuwählen, dessen Größe gerade geändert, geändert usw. wurde. Es sollte jedoch für jeden Dateityp funktionieren .quelle
1) Das Problem des Standardwerts in einer Dateieingabe wird NICHT "aus Sicherheitsgründen" ausgeführt, aber die Browser "haben ihn ohne guten Grund einfach nicht implementiert": siehe diesen ausführlichen Bericht
2) Eine einfache Lösung kann darin bestehen, eine Texteingabe über der Dateieingabe zu verwenden, wie hier . Natürlich benötigen Sie Code zum Senden der Datei, wobei Sie jetzt den Wert in der Texteingabe und nicht die Dateieingabe verwenden.
In meinem Fall ist das kein Problem, wenn ich eine HTA-Anwendung mache. Ich verwende überhaupt kein Formular.
quelle
In HTML definieren:
In JS:
Nach:
quelle
Eigentlich können wir es schaffen. Wir können den Standardwert für die Datei festlegen, indem wir das Webbrowser-Steuerelement in c # mithilfe der FormToMultipartPostData-Bibliothek verwenden. Wir müssen diese Bibliothek herunterladen und in unser Projekt aufnehmen. Mit Webbrowser kann der Benutzer innerhalb des Formulars durch Webseiten navigieren. Sobald die Webseite geladen ist, wird das Skript in webBrowser1_DocumentCompleted ausgeführt. Damit,
Den Download und die vollständige Referenz finden Sie unter dem folgenden Link.
https://www.codeproject.com/Articles/28917/Setting-a-file-to-upload-inside-the-WebBrowser-com
quelle