HTML5 , kullanıcının dosyalarla yerel olarak etkileşim kurmasına izin veren uygulamalar oluşturmanıza olanak tanıyan Dosya API spesifikasyonuyla birlikte gelir ; Bu, dosyaları gerçekten yüklemek zorunda kalmadan dosyaları yükleyebileceğiniz ve tarayıcıda oluşturabileceğiniz anlamına gelir. Dosya API'sinin bir parçası, web uygulamalarının dosyaların içeriğini eşzamansız olarak okumasına izin veren Dosya Okuyucu arabirimidir.
FileReader
Bir görüntüyü DataURL olarak okumak için sınıfı kullanan ve src
bir görüntü etiketinin özniteliğini bir veri URL'si olarak ayarlayarak bir küçük resim oluşturan hızlı bir örneği burada bulabilirsiniz :
Html kodu:
<input type="file" id="files" />
<img id="image" />
JavaScript kodu:
document.getElementById("files").onchange = function () {
var reader = new FileReader();
reader.onload = function (e) {
// get loaded data and render thumbnail.
document.getElementById("image").src = e.target.result;
};
// read the image file as a data URL.
reader.readAsDataURL(this.files[0]);
};
JavaScript'te Dosya API'larını kullanma hakkında iyi bir makale burada .
Aşağıdaki HTML örneğindeki kod parçacığı, kullanıcının seçimindeki resimleri filtreler ve seçilen dosyaları birden çok küçük resim önizlemesine dönüştürür:
function handleFileSelect(evt) {
var files = evt.target.files;
// Loop through the FileList and render image files as thumbnails.
for (var i = 0, f; f = files[i]; i++) {
// Only process image files.
if (!f.type.match('image.*')) {
continue;
}
var reader = new FileReader();
// Closure to capture the file information.
reader.onload = (function(theFile) {
return function(e) {
// Render thumbnail.
var span = document.createElement('span');
span.innerHTML =
[
'<img style="height: 75px; border: 1px solid #000; margin: 5px" src="',
e.target.result,
'" title="', escape(theFile.name),
'"/>'
].join('');
document.getElementById('list').insertBefore(span, null);
};
})(f);
// Read in the image file as a data URL.
reader.readAsDataURL(f);
}
}
document.getElementById('files').addEventListener('change', handleFileSelect, false);
<input type="file" id="files" multiple />
<output id="list"></output>