2015-08-08 2 views
1

Я использую Cordova для создания мобильного приложения на iOS. Я хочу загрузить несколько файлов на сервер, но вместо отправки их один за другим. Я хочу сжать эти файлы в один файл .zip и загрузить его на сервер.Кордова - Почтовые файлы и папки на iOS

Я искал плагин Кордовы, но я нашел только эти плагин, которые не решают мою проблему:

  • Icenium/cordova-plugin-zip застегнуть и распаковать файлы на прошивке, но нет никакой документации или примера о том, как использовать его ,
  • jjdltc/jjdltc-cordova-plugin-zip для распаковки и распаковки файлов только на платформе Android.

Пожалуйста, помогите мне найти плагин для zip-файлов и папок на iOS или дать мне пример об использовании первого плагина.

ответ

4

Нам удалось разархивировать, изменить и закрепить файлы с помощью API-интерфейса JSZip и cordova file plugin. Он также должен работать для создания zip с нуля. Существует нет необходимости использовать собственный код для действия zipping (хотя это скорее всего быстрее), только для чтения файлов для zip и записи zip-файла. Следовательно, хорошо использовать javascript API, который не был специально разработан для кордовы.

Процесс Если вы хотите попробовать метод файл плагина JSZip +, вот краткий набросок того, как мы работали с ним:

  1. Мы используем файл плагин для чтения файлов в двоичном виде. Если вам повезло, что у вас есть только текстовые файлы, вы также можете читать текст, но он менее гибкий. Обратите внимание, что для чтения файлов вам нужно будет получить объект File из своего FileEntry, который потребует перехода в файловой системе с помощью DirectoryEntry s. Если вы не знакомы с файловым плагином, ознакомьтесь с его документацией, чтобы сделать этот шаг.
  2. Мы создаем объект JSZip.
  3. Управляйте объектом JSZip так, как вы хотите. Вы можете создавать папки в zip-файле, добавлять файлы, удалять их, изменять некоторые материалы. Как вы считаете нужным. Их документация дает простые и хорошие примеры.
  4. Создайте двоичный файл zip с помощью JSZip JSZip#generate(), указав тип. Если вы хотите создать с ним фактический файл, мы заметили, что строка и arraybuffer могут быть записаны с помощью метода записи файла плагина (после создания файла) без кода для его преобразования в iOS, но не uint8array (и мы не пытались другие типы поколений).
  5. Рассматривайте двоичный файл как хотите. Это то же самое, как если бы вы прочитали двоичный код фактического zip.



PS: Файл плагин имеет некоторые устаревшие документы на cordova.apache.org. Хотя примеры в нем могут быть полезными, имейте в виду, что некоторые из них уже недействительны. Например, resolveLocalFileSystemURI() теперь resolveLocalFileSystemURL().

+0

+1 для устаревшего метода (например, resolveLocalFileSystemURI()). Я хорошо знаком с файловым плагином, и по этой причине я просто знаю –