Wie kann ich JavaScript verwenden, um die Notwendigkeit von zu beseitigen Submit Taste. Das ist gemein, sobald ich Choose Filedie ausgewählte Datei wird sofort hochgeladen?
Wie kann ich sicherstellen, dass das Feld zum Anzeigen des ausgewählten Dateinamens lang genug ist, sodass … nicht angezeigt wird?
Warum sollten Sie die Schaltfläche „Senden“ umgehen? Und wenn Sie #1 verwalten, spielt #2 keine Rolle, da der Benutzer direkt nach der Auswahl der Datei umgeleitet wird.
– Evan Mulawski
19. Januar 2011 um 0:51 Uhr
Sobald ich also versehentlich die falsche Datei auswähle, wird sie hochgeladen, ohne dass ich bestätigen muss, dass die falsche Datei hochgeladen werden soll, indem ich auf die Schaltfläche „Senden“ drücke.
– Stefan P
19. Januar 2011 um 1:01 Uhr
Lepe
Um es sofort einzureichen, tun Sie einfach Folgendes:
(und viele mehr. Googlen Sie einfach nach: “Ajax-Datei-Upload” oder “Iframe-Datei-Upload”)
2) Machen Sie sich keine Sorgen über die Breite des Feldes. Da Sie nicht wissen, wie lang der Weg sein kann, wäre er nie lang genug (glaube ich). Auch Browser können es sehr unterschiedlich darstellen. Zum Beispiel Safari oder Chrome zeigen es ganz anders als Firefox oder IE. Verwenden Sie einfach die Standardlänge oder diejenige, die besser zu Ihrem Design passt.
Sie benötigen das Präfix „javascript:“ in den onevent-Attributen nicht
– Sime Vidas
19. Januar 2011 um 1:21 Uhr
Schlägt auf IE8 fehl, da der Zugriff auf den Aufruf zum Senden verweigert wird.
– Maurice Flanagan
12. September 2012 um 23:02 Uhr
Falls Sie bei der Auswahl der Dateieingabe nicht das gesamte Formular senden möchten oder müssen, können Sie dies tun, um nur die Datei zu senden:
$(document).ready(function (e) {
$("#uploadImage").on('change',(function(e) {
// append file input to form data
var fileInput = document.getElementById('uploadImage');
var file = fileInput.files[0];
var formData = new FormData();
formData.append('uploadImage', file);
$.ajax({
url: "ajaxupload.php",
type: "POST",
data: formData,
contentType: false,
cache: false,
processData:false,
success: function(data) {
if(data=='invalid') {
// invalid file format.
$("#err").html("Invalid File !").fadeIn();
}
else {
// view uploaded file.
$("#preview").html(data).fadeIn();
$("#form")[0].reset();
}
},
error: function(e) {
$("#err").html(e).fadeIn();
}
});
}));
});
Sie erhalten also zuerst das Eingabedateielement mit getElementById(), dann hängen Sie an FormData an und senden dann die FormData als Daten in Ihrem Ajax-Aufruf. Führen Sie die serverseitige Upload-Verarbeitung in ajaxupload.php durch.
Ich bin mir nicht sicher, ob ich das Feld breit genug machen soll. Manchmal wird CSS in Datei-Upload-Feldern lahmgelegt, um Exploits zu verhindern.
Um Dateieingaben zu formatieren, müssen Sie im Allgemeinen den Trick anwenden, ein transparentes Phantom-Dateieingabeelement über einige Dummy-Elemente zu legen, die so aussehen, wie Sie es möchten.
– Spitze
19. Januar 2011 um 0:52 Uhr
Ich habe es vor langer Zeit einmal so gemacht und habe seitdem entschieden, dass es normalerweise am besten ist, Formulareingaben beizubehalten, da die Leute erwarten würden, wie sie nativ gerendert werden. Hier ist die Anleitung, wenn Sie es wirklich so machen wollen: quirksmode.org/dom/inputfile.html
– scragz
19. Januar 2011 um 1:25 Uhr
dpmguise
Schätzen Sie grob, was Sie wollen – wenn sich das Textfeld ändert, wird es die Formularübermittlung auslösen
Bearbeiten: Entschuldigung, ich habe jQuery verwendet …
Wenn Sie das Formular bei einer Änderung absenden, werden Sie nicht bemerken, dass das Feld ausgefüllt wird, und sollten daher die Textlänge nicht ändern müssen. Wenn Sie möchten, würde ich die Zeichenanzahl der Zeichenfolge im Feld abrufen und dann ein Größenattribut auf die Eingabe anwenden
Warum sollten Sie die Schaltfläche „Senden“ umgehen? Und wenn Sie #1 verwalten, spielt #2 keine Rolle, da der Benutzer direkt nach der Auswahl der Datei umgeleitet wird.
– Evan Mulawski
19. Januar 2011 um 0:51 Uhr
Sobald ich also versehentlich die falsche Datei auswähle, wird sie hochgeladen, ohne dass ich bestätigen muss, dass die falsche Datei hochgeladen werden soll, indem ich auf die Schaltfläche „Senden“ drücke.
– Stefan P
19. Januar 2011 um 1:01 Uhr