Top Banner
Файлы и Javascript DASHUKEVICH VLADIMIR 21.05.2014
54

Files and JS

Jul 20, 2015

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Files and JS

Файлы и

JavascriptDASHUKEVICH VLADIMIR

21.05.2014

Page 2: Files and JS

Файлы как запретный плод

Page 3: Files and JS

Что же такое File в JS?

Page 4: Files and JS

File и FileList API

Page 5: Files and JS

Что такое Blob?

Page 6: Files and JS

Blob - это просто)

Page 7: Files and JS

Что такое Blob?

Page 8: Files and JS

Как достать из него

информацию?

Page 9: Files and JS

Но нам нужно их прочитать!

Page 10: Files and JS

Даешь FileReader!!!

Page 11: Files and JS

Читаем

Page 12: Files and JS

File и FileReader

Page 13: Files and JS

Как получить доступ к

файлам?

Page 14: Files and JS

ActiveX как решение проблемы

var ExcelSheet = new

ActiveXObject("Excel.Sheet");

ExcelSheet.ActiveSheet.Cells(1,1).Value = "A";

ExcelSheet.SaveAs("C:\\TEST.XLS");

Page 15: Files and JS

Oooooups!

Page 16: Files and JS

NPAPI как решение проблемы

Page 17: Files and JS

Вы действительно круты!

Page 18: Files and JS

Получение доступа к

файлам

Page 19: Files and JS

Перетащи меня в браузер

Input c типом “file“

Словить “drop“ событие на любом элементе

CTRL+C -> CTRL+V

Получить с сервера

Page 20: Files and JS

Input c типом “file“

1. <input type="file" />

2. Слушаем событие “change” этого

элемента

3. В IE10+ смотрим свойство files.

Page 21: Files and JS

<input type="file" multiple />

Page 22: Files and JS

<input type="file" webkitdirectory />

Page 23: Files and JS

Drag and

drop

Page 24: Files and JS

Перетащи меня в браузер

Cловить drop и dragover

Посмотреть в dataTransfer свойство

пришедшего объекта Event

Page 25: Files and JS

event.dataTransfer.files

Page 26: Files and JS

event.dataTransfer.items

Page 27: Files and JS

Webdrivers и Input поле

Отправить самодельное событие

drop

Page 28: Files and JS

Copy/paste

Page 29: Files and JS

CTRL+C и CTRL+V (Chrome)

1. Ловим событие paste

2. Заглядываем в clipboardData

Page 30: Files and JS

Копирование части XLS

Page 31: Files and JS

CTRL+C и CTRL+V (Все)

1. Создаем <div contenteditable ></div>

2. Ловим paste

3. По Timeout берем содержимое

(base64)

Page 32: Files and JS

Ты крут!!!

Page 33: Files and JS

Получаем с сервера

Page 34: Files and JS

Берем с сервера

Page 35: Files and JS

Перетащи меня из браузера

1. Ловим dragstart

2. Даем ссылку:

e.dataTransfer.setData("DownloadURL", "ap

plication/pdf:doc.pdf:http://you.com");

Page 36: Files and JS

Разрушаем

мечты(

Page 37: Files and JS

Конец уже близок)

Page 38: Files and JS

Что же нам делать с

файлами на клиенте?

Page 39: Files and JS

Создать ссылку на

файл)

Page 40: Files and JS

Парсим XSL и XSLX файлы

XLS - https://github.com/SheetJS/js-

xls

XLSX - https://github.com/SheetJS/js-

xlsx

Page 41: Files and JS

XLSX.read(data, {type: 'binary'});

Page 42: Files and JS

Поддержка

Браузеры: IE6+ (base64)

Форматы:

ZIP, base64, binary, XLSX, XLS

M, XLSB.

Page 43: Files and JS

Сжатие данных

Page 44: Files and JS

JSZip

new JSZip(zipDataFromXHR, {base64:false});

Page 45: Files and JS

zip.js

Safari 5 и IE9 (до 4GB)

Page 46: Files and JS

Парсинг

PDF

Page 47: Files and JS

PDF.js

https://github.com/mozilla/pdf.js

Page 48: Files and JS

PDF.js

Page 49: Files and JS

Demo от Mozilla

http://mozilla.github.io/pdf.js/web/viewer.ht

ml

Page 50: Files and JS

Остальное

Редактирование картинок

Редактирование звуков

Редактирование других форматов

Page 51: Files and JS

Сохранени

е

Page 52: Files and JS

Сохранить

1. Iframe с ссылкой на файл

(Chrome, FireFox)

2. execCommand (IE < 10) и

msSaveOrOpenBlob(blob, defaultName

);

3. localStorage

4. indexDB

Page 53: Files and JS

Статья

http://tinyurl.com/lusagk5

Page 54: Files and JS

Ваши вопросы?