Итак, я работаю над веб-приложением, где пользователю необходимо:
- предоставить файл, полный данных для работы на
- сохранить свои результаты в файл
Все манипуляции выполняются в javascript, поэтому мне пока не требуется серверный код (только статический хостинг), и мне это нравится.
В Firefox я могу использовать их api манипулирования файлами, чтобы позволить пользователю загружать файл непосредственно в код на стороне клиента (используя стандартный <input type=file/>
) и создавать URL объекта из файл, чтобы пользователь мог сохранить файл, созданный клиентским кодом.
<input type="file" id="input" onchange="handleFiles(this.files)">
<a download="doubled" id="ex">right-click and save as</a>
<script>
function handleFiles(fileList){
var builder = new MozBlobBuilder();
var file = fileList[0];
var text = file.getAsBinary();
builder.append(text);
builder.append(text);
document.getElementById('ex').href = window.URL.createObjectURL( builder.getBlob() );
}
</script>
Так что это здорово. Теперь я хочу сделать то же самое в других браузерах - или, по крайней мере, в современных версиях других браузеров. Существуют ли похожие API для Chrome и IE? Если так, кто-нибудь уже создал кросс-браузерную оболочку, которую я должен использовать?