Javascript Files Api

Javascript Files Api pozwala na dostęp do informacji o pliku jeszcze przed jego wysłaniem na serwer. Przedstawię wycinek files api - FileReader API. Stwórzmy dokument html a w sekcji body dodajmy

<input id="files" type="file" name="files[]" multiple="multiple" />
<div id="preview">
</div>
<div id="info"></div>
<input id="sub" type="submit" value="Dodaj" />
Napiszemy skrypt, dzięki któremu po wybraniu zdjęcia i kliknięciu na przycisk Dodaj będzie dodawał miniaturkę zdjęcia do diva o id preview. Najpierw w zmiennej files zapisujemy nasze zdjęcia. Jest to tzw. obiekt FileList. Tworzymy obiekt FileReader, dzięki któremu uzyskamy dostęp do informacji o zdjęciu. Pętlą przechodzimy przez pliki. Jeśli typ pliku nie wskazuje na zdjęcie pokazujemy odpowiedni komunikat. W przeciwnym razie dzięki readerowi wczytujemy zdjęcie. Po jego załadowaniu dołączamy miniaturkę do diva o id preview. Cały kod javascript poniżej.
$('input#sub').click(function(e) {
	var files = $('#files')[0].files; // FileList object
	var reader = new FileReader();
	for (var i = 0, f; f = files[i]; i++) 
	{
		if(files[i].type!='image/jpeg' && files[i].type!='image/png' && files[i].type!='image/gif')
		{
			$('div#info').html('Plik musi być zdjęciem');
		}
		else
		{
			reader.onload = (function(file) {
				return function(e) {
					$('div#preview').append('<img src="'+e.target.result+'" alt="" style="width:160px;" />');
				};
			})(files[i]);
			reader.readAsDataURL(files[i]);
		}
	}
	return false;
});
Przykład js files api