JS and files ver 1

35
Файлы и Javascript DASHUKEVICH VLADIMIR 21.05.2014

Transcript of JS and files ver 1

Page 1: JS and files ver 1

Файлы и

JavascriptDASHUKEVICH VLADIMIR

21.05.2014

Page 2: JS and files ver 1

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

Page 3: JS and files ver 1

Что такое файл в JS

File и FileList API

Page 4: JS and files ver 1

File это просто Blob

Page 5: JS and files ver 1

Что такое Blob?

Page 6: JS and files ver 1

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

Page 7: JS and files ver 1

Даешь FileReader!!!

Page 8: JS and files ver 1

Читаем

Page 9: JS and files ver 1

File и FileReader

Page 10: JS and files ver 1

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

файлам?

Page 11: JS and files ver 1

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

var ExcelSheet = new

ActiveXObject("Excel.Sheet");

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

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

Page 12: JS and files ver 1

Oooooups!

Page 13: JS and files ver 1

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

Page 14: JS and files ver 1

Ты крут!!!

Page 15: JS and files ver 1

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

файлам

Page 16: JS and files ver 1

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

Input c типом “file“

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

CTRL+C -> CTRL+V

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

Page 17: JS and files ver 1

Input c типом “file“

1. <input type="file" />

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

элемента

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

Page 18: JS and files ver 1

Как выбрать несколько файлов 1. <input type="file" multiple />

Page 19: JS and files ver 1

А папку?

<input type="file" webkitdirectory />

Page 20: JS and files ver 1

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

Cловить drop и dragover

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

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

Page 21: JS and files ver 1

Selenium и тесты

Webdrivers и Input поле

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

drop

Page 22: JS and files ver 1

CTRL+C и CTRL+V (Chrome)

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

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

Page 23: JS and files ver 1

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

Page 24: JS and files ver 1

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

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

2. Ловим paste

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

Page 25: JS and files ver 1

Ты крут!!!

Page 26: JS and files ver 1

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

Page 27: JS and files ver 1

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

1. Ловим dragstart

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

e.dataTransfer.setData("DownloadURL",

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

Page 28: JS and files ver 1

И как мы можем это

использовать?

1. Изменение картинок

2. Парсинг XLS файлов

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

4. Парсинг PDF

Page 29: JS and files ver 1

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

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

xls

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

xlsx

Page 30: JS and files ver 1

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

JSZip

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

Page 31: JS and files ver 1

zip.js

Page 32: JS and files ver 1

PDF.js

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

Page 33: JS and files ver 1

Сохранить

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

(Chrome)

2. execCommand (IE)

3. localStorage

4. indexDB

Page 34: JS and files ver 1

Статья

http://tinyurl.com/lusagk5

Page 35: JS and files ver 1

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