Javascript'teki yeni Dosya API'sı ile, istemcideki istemcilere resmi göstermek için dataURL'leri oluşturmak için Javascript'teki dosyaları okuyabilirsiniz. FileReader'ın aşırı yükleme geri çağrısı içinde File nesnesine ulaşıp ulaşamayacağınızı merak ediyorum. Bir örnekle bu gösterilecektir:HTML5 Dosya API'sı: File nesnesini FileReader geri çağrısı alın
var div = document.createElement('div'); div.ondrop = function(e) { e.preventDefault(); e.stopPropagation(); var files = e.dataTransfer.files; for (var i=0; i<files.length; i++) { var file = files[i]; // this is the file I want!! var filereader = new FileReader(); filereader.onload = function(e) { this; // the FileReader object e.target; // the same FileReader object this.result; // the dataURL, something like data:image/jpeg;base64,..... var img = document.createElement('img'); img.src = this.result; img.title = file.fileName; // This won't be working document.appendChild(img); } } return false; }
yapabileceğim ne - Şu an ne - bir işlevi döngü içeriğini sarın ve yeni bir kapsam oluşturmak için çalıştırmak ve bir dosya tutmak böyle bir kapsamda:
Sadece merak ettim ... Belki bir şeyleri özlüyorum. File nesnesini FileReader'ın onload işlevinden almanın bir yolu var mı? Hem this
ve e.target
, FileReader nesnesidir ve Dosya değildir. this
veya e
'da bir dosya var mı? Ben
Teşekkür bir demet :(bulamıyorum
PS A keman:... Ben zaten kapsam sarıcı daha Belki değil iyi bir yol buldum, ama öyle düşünüyorum
Şu an kullandığım şey (ve bir süredir kullanıyorum): http://js1.hotblocks.nl - javascript: http://js1.hotblocks.nl/tests/ajax/fdd.js - Hala cevabımdaki kodu kullanıyor. Ve çalışıyor. (Çirkin) kapanmadan. (//s ile yazılmıştır.) – Rudie
Eğer Javascript'i beğendiyseniz, (herhangi bir bölümünü) kullanabilirsiniz. Web işçilerinin bu konuda nasıl bir rol oynayabileceğini merak ediyorum (yükleme yapmadan önce bunları okuyabilmeniz ve görüntüleyebilmeniz için resim yükü geri bildirimleri için web işçilerini kullanın) – Rudie
"filereader.file = file;" öğesinin atamasını kaçırdım. Bu çözümü işaret ettiğin için teşekkürler. –