2.2k Aufrufe
Gefragt in Webseiten HTML von dapascha Mitglied (541 Punkte)
Hi,

Problembeschreibung:
Ein HTML-Input-File-Element soll via Textlink ausgelöst werden. Wenn man also auf den Textink klickt, dann soll sich das Formular zum Auswählen der Datei öffnen. Wählt man ein aus, so soll die Datei sofort hochgeladen werden.

Lösungsansatz:
Das HTML-Input-File-Element wird in einen unsichtbaren Layer integriert. Sobald das OnChange-Event ausgelöst wird, wird das Fomular verschickt.

Das Problem ist also nicht das Verschicken, sondern das Öffnen des Dateimanagers. Hat jemand eine Idee, wie man den Klick auf den Button des HTML-Input-File-Elementes "simulieren", z. B. via JavaScript, könnte?

MfG DaPascha

6 Antworten

0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Ich will nicht hoffen, dass das möglich ist. Ansonsten könnte mir eine Webseite gleich zu Beginn den Öffnen-Dialog anzeigen. Aus Sicherheitsgründen kannst du z.B. auch nicht den Wert der Textbox vorbelegen oder per JavaScript beschreiben - da ja sonst auch automatische Uploads ohne jegliche Benuterinteraktion möglich wären.

Selbst mit einer Click-Stealing-Variante muss der Benutzer immernoch mindestens einen Mausklick selbst ausführen...
0 Punkte
Beantwortet von dapascha Mitglied (541 Punkte)
Möglicherweise hast du Recht...

Ich habe mir einen Klick-Simulator in JavaScript gebastelt:
function simulateClick(elementID) {
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
var cb = document.getElementById(elementID);
cb.dispatchEvent(evt);
}

Eine weitere Möglichkeit einen Mausklick zu simulieren wäre auch:
document.getElementById(elementID).click();

Elemente wie Checkboxen kann ich damit ohne Probleme ansteuern, das File-Element zeigt jedoch in beiden Varianten keine Reaktion.

MfG DaPascha
0 Punkte
Beantwortet von supermax Experte (4.8k Punkte)
Die meisten dieser Automatismen funktionieren aus Sicherheitsgründen nicht mit dem Upload-Feld, da sonst eine bösartige Webseite ohne dein Wissen beliebige Dateien von deinem Rechner "abholen" könnte.
0 Punkte
Beantwortet von dapascha Mitglied (541 Punkte)
Na gut, dann lasse ich mir was anderes einfallen.

Trotzdem, vielen Dank für die Antworten!

MfG DaPascha
0 Punkte
Beantwortet von computerfreaki Mitglied (219 Punkte)
Hi DaPascha,
also ich kenne da ne Möglichkeit mit einem Flash-Uploader. Ich persönliche verwende diesen für meine Bildergalerie im Heimnetzwerk. Man kann mehrere Dateien gleichzeitig im Dateimanager auswählen. Das mit dem Textlink kannst du warscheinlich auch irgendwie mit JavaScript und Flash hinbekommen. FancyUpload bietet genug Funktionen für so etwas.

Gruß Computerfreaki
0 Punkte
Beantwortet von dapascha Mitglied (541 Punkte)
Danke für deine Antwort Computerfreaki, ich werde das auf jeden Fall testen.
...