SlideShare a Scribd company logo
Файлы и
Javascript
DASHUKEVICH VLADIMIR
21.05.2014
Файлы как запретный плод
Что же такое File в JS?
File и FileList API
Что такое Blob?
Blob - это просто)
Что такое Blob?
Как достать из него
информацию?
Но нам нужно их прочитать!
Даешь FileReader!!!
Читаем
File и FileReader
Как получить доступ к
файлам?
ActiveX как решение проблемы
var ExcelSheet = new
ActiveXObject("Excel.Sheet");
ExcelSheet.ActiveSheet.Cells(1,1).Value = "A";
ExcelSheet.SaveAs("C:TEST.XLS");
Oooooups!
NPAPI как решение проблемы
Вы действительно круты!
Получение доступа к
файлам
Перетащи меня в браузер
 Input c типом “file“
 Словить “drop“ событие на любом
элементе
 CTRL+C -> CTRL+V
 Получить с сервера
Input c типом “file“
1. <input type="file" />
2. Слушаем событие “change” этого
элемента
3. В IE10+ смотрим свойство files.
<input type="file" multiple />
<input type="file" webkitdirectory />
Drag and
drop
Перетащи меня в браузер
Cловить drop и dragover
Посмотреть в dataTransfer свойство
пришедшего объекта Event
event.dataTransfer.files
event.dataTransfer.items
Webdrivers и Input поле
Отправить самодельное событие
drop
Copy/paste
CTRL+C и CTRL+V (Chrome)
1. Ловим событие paste
2. Заглядываем в clipboardData
Копирование части XLS
CTRL+C и CTRL+V (Все)
1. Создаем <div contenteditable ></div>
2. Ловим paste
3. По Timeout берем содержимое
(base64)
Ты крут!!!
Получаем с сервера
Берем с сервера
Перетащи меня из браузера
1. Ловим dragstart
2. Даем ссылку:
e.dataTransfer.setData("DownloadURL", "ap
plication/pdf:doc.pdf:http://you.com");
Разрушаем
мечты(
Конец уже близок)
Что же нам делать с
файлами на клиенте?
Создать ссылку на
файл)
Парсим XSL и XSLX файлы
XLS - https://github.com/SheetJS/js-
xls
XLSX - https://github.com/SheetJS/js-
xlsx
XLSX.read(data, {type: 'binary'});
Поддержка
Браузеры: IE6+ (base64)
Форматы:
ZIP, base64, binary, XLSX, XLS
M, XLSB.
Сжатие данных
JSZip
new JSZip(zipDataFromXHR, {base64:false});
zip.js
Safari 5 и IE9 (до 4GB)
Парсинг
PDF
PDF.js
https://github.com/mozilla/pdf.js
PDF.js
Demo от Mozilla
http://mozilla.github.io/pdf.js/web/viewer.ht
ml
Остальное
Редактирование картинок
Редактирование звуков
Редактирование других форматов
Сохранени
е
Сохранить
1. Iframe с ссылкой на файл
(Chrome, FireFox)
2. execCommand (IE < 10) и
msSaveOrOpenBlob(blob, defaultName
);
3. localStorage
4. indexDB
Статья
http://tinyurl.com/lusagk5
Ваши вопросы?

More Related Content

PPTX
JS and files ver 1
PPTX
Приложения для Windows Phone: как мы это делаем #codefest
PPT
CodeFest 2013. Никонов Г. — Как мы разрабатываем приложения для Windows Phone...
PDF
Quick introduction jQuery
PPTX
Как не утонуть в мегабайтах JS-кода
PPTX
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
PDF
JavaScript Базовый. Занятие 07.
PPTX
Selenium vs AJAX
JS and files ver 1
Приложения для Windows Phone: как мы это делаем #codefest
CodeFest 2013. Никонов Г. — Как мы разрабатываем приложения для Windows Phone...
Quick introduction jQuery
Как не утонуть в мегабайтах JS-кода
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
JavaScript Базовый. Занятие 07.
Selenium vs AJAX

What's hot (6)

PDF
C# Web. Занятие 12.
PDF
JavaScript Базовый. Занятие 08.
PDF
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
PPTX
XPath локаторы в Selenium WebDriver
PPTX
Тестирование Web API
PPTX
Selenium: начало работы
C# Web. Занятие 12.
JavaScript Базовый. Занятие 08.
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
XPath локаторы в Selenium WebDriver
Тестирование Web API
Selenium: начало работы
Ad

Viewers also liked (12)

PPTX
Всё ли ты знаешь о JavaScript ООП?
PPTX
Игровая физика в JavaScript
PPTX
Замыкания и область видимости
PPTX
Frontend в режиме реального времени [05.03.15]
PPTX
Визуальное проектирования интернет-проектов - Михаил Кашафутдинов
PDF
Реактивные интерфейсы с React.js и БЭМ: мастер-класс — Слава Аристов, Яндекс
PDF
Сайт с нуля на полном стеке БЭМ-технологий
PPT
Решение AFS физика
PPT
Физика. Сделай сам. Лекция 1
PDF
Portfolіo TestReport - DM
PDF
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
PDF
Вебинар по БЭМ: верстаем веб-страницу
Всё ли ты знаешь о JavaScript ООП?
Игровая физика в JavaScript
Замыкания и область видимости
Frontend в режиме реального времени [05.03.15]
Визуальное проектирования интернет-проектов - Михаил Кашафутдинов
Реактивные интерфейсы с React.js и БЭМ: мастер-класс — Слава Аристов, Яндекс
Сайт с нуля на полном стеке БЭМ-технологий
Решение AFS физика
Физика. Сделай сам. Лекция 1
Portfolіo TestReport - DM
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
Вебинар по БЭМ: верстаем веб-страницу
Ad

Files and JS