вот например код загрузки для остальных браузеров:
це html5 filereader + codeigniter + и скрипт который собирает все воедино и отправляет на сервер по 1 файлу
<form id="sent_form" enctype="multipart/form-data" method="POST">
Щелкните что бы выбрать файл/файлы: <input type="file" id="files" name="files[]" multiple="true" accept="image/jpeg,image/png,image/gif" required="required" />
<output id="list"></output>
<a href="#" onClick="upload()">Загрузить</a>
</form>
<div id="status"></div>
<script type="text/javascript" src="/data/js/scriptjava.js"></script>
<script>
function upload() {
$$f({
formid:'sent_form',
url:'/ajax_ctrl/upload_files_foto/<?php echo $album_id; ?>',
onstart:function () {
$$('status','начинаю отправку файла');
},
onsend:function (req) {
document.location.href = "/p<?php echo $user_id?>/album_<?php echo $album_id; ?>";
}
});
}
function errorHandler(e) {
var msg = '';
switch (e.code) {
case FileError.QUOTA_EXCEEDED_ERR:
msg = 'QUOTA_EXCEEDED_ERR';
break;
case FileError.NOT_FOUND_ERR:
msg = 'NOT_FOUND_ERR';
break;
case FileError.SECURITY_ERR:
msg = 'SECURITY_ERR';
break;
case FileError.INVALID_MODIFICATION_ERR:
msg = 'INVALID_MODIFICATION_ERR';
break;
case FileError.INVALID_STATE_ERR:
msg = 'INVALID_STATE_ERR';
break;
default:
msg = 'Unknown Error';
break;
};
console.log('Error: ' + msg);
}
function handleFileSelect(evt) {
var files = evt.target.files;
for (var i = 0, f; f = files[i]; i++) {
if (!f.type.match('image.*')) {
continue;
}
var reader = new FileReader();
reader.onload = (function(theFile) {
return function(e) {
var span = document.createElement('span');
span.innerHTML = ['<img class="thumb" src="', e.target.result,
'" title="', theFile.name, '"/>'].join('');
document.getElementById('list').insertBefore(span, null);
};
})(f);
reader.readAsDataURL(f);
}
}
document.getElementById('files').addEventListener('change', handleFileSelect, false);
</script>