Ich habe <input type="file" id="basicUploadFile" multiple="multiple"> und ich möchte alle Dateinamen in dieser Eingabe erhalten. Ich habe ein Beispiel gesehen, aber es bekommt nur den Namen der ersten Datei.
$ ('#basicUploadFile').live ('change', function () {
alert($ ('#basicUploadFile').val());
});
Wie kann ich das machen? Vielen Dank.
stackoverflow.com/questions/6171013/…
– lukas.pukenis
22. Mai 2012 um 13:37 Uhr
Genaues Duplikat dieser Frage: stackoverflow.com/questions/3654179/…
– Tr1stan
22. Mai 2012 um 13:39 Uhr
kaputt
var files = $('#basicUploadFile').prop("files")
files wird ein FileList-Objekt sein.
var names = $.map(files, function(val) { return val.name; });
Jetzt names ist ein Array von Strings (Dateinamen)
Sie können weiterhin auf die Dateien als FileList Sammlung ohne die Notwendigkeit einer Überbeanspruchung jQuery. Ich habe schnell eine erstellt jsFiddle demonstrieren, wie man die Informationen aus der Eingabe herausholt, indem man die verwendet FileList und File Objekte. Hier ist ein Ausschnitt:
$('#basicUploadFile').live('change', function ()
{
for (var i = 0; i < this.files.length; i++)
{
alert(this.files[i].name);
alert(this.files.item(i).name); // alternatively
}
});
Können Sie bitte ein wenig erklären, warum “this” anstelle von “$(this)” verwendet wird?
– atif
6. Februar 2013 um 6:32 Uhr
$(this) würde uns einfach einen jQuery-Wrapper für das Objekt bereitstellen thiswas in einigen Fällen hilfreich wäre, da es bestimmte Methoden offenlegen würde, aber in diesem Fall ist es unnötig.
– Richard
6. Februar 2013 um 9:24 Uhr
dies funktioniert nicht im IE – IE erlaubt Ihnen keinen Zugriff auf die Dateiliste.
– Seltsamer Mann
13. Februar 2013 um 4:55 Uhr
@Oddman, das ist teilweise richtig; Das Hochladen mehrerer Dateien wird nur in IE10 unterstützt, caniuse.com/#feat=forms
– Richard
13. Februar 2013 um 16:31 Uhr
Wir haben es ausgiebig auf unseren eigenen Browsern bei der Arbeit getestet und konnten in keinem der IE-Browser auf die Dateieigenschaft zugreifen 🙁
– Seltsamer Mann
14. Februar 2013 um 6:29 Uhr
Ich habe dies verwendet, um in der Konsole alle Dateinamen anzuzeigen:
var input_file = $("#input_file");
input_file.on("change", function () {
var files = input_file.prop("files")
var names = $.map(files, function (val) { return val.name; });
$.each(names, function (i, name) {
console.log(name);
});
});
<input name="selectAttachment" id="selectAttachment" type="file" multiple="multiple">
<button class="btn btn-default" onclick="uploadAttachment()" type="submit">Upload</button>
function uploadAttachment() {
debugger;
var files = $('#selectAttachment').prop('files');
var names = $.map(files, function (val) { return val.name; });
}
Sie können den Prototyp von erweitern File-Objekt (zum Beispiel File.prototype.toJSON), und Sie können auf die Dateiliste von zugreifen <input ..>:
<input id="myFile" type="file">
var file = document.getElementById('fileItem').files[0];
Weitere Informationen finden Sie in dieser Dokumentation:
stackoverflow.com/questions/6171013/…
– lukas.pukenis
22. Mai 2012 um 13:37 Uhr
Genaues Duplikat dieser Frage: stackoverflow.com/questions/3654179/…
– Tr1stan
22. Mai 2012 um 13:39 Uhr