14 KiB
cordova-plugin-file-transfer
Этот плагин позволяет вам загружать и скачивать файлы.
Установка
cordova plugin add cordova-plugin-file-transfer
Поддерживаемые платформы
-
Amazon Fire OS
-
Android
-
BlackBerry 10
-
Firefox OS **
-
iOS
-
Windows Phone 7 и 8 *
-
Windows 8 ***|
-
Windows ***|
-
*Не поддерживают
onprogress
, ниabort()
*
** *Не поддерживает onprogress
*
Частичная поддержка onprogress
для закачки метод. onprogress
вызывается с пустой ход событий благодаря Windows limitations_
FileTransfer
FileTransfer
Объект предоставляет способ для загрузки файлов с помощью нескольких частей запроса POST HTTP и для загрузки файлов, а также.
Параметры
- OnProgress: называется с
ProgressEvent
всякий раз, когда новый фрагмент данных передается. (Функция)
Методы
-
добавлено: отправляет файл на сервер.
-
скачать: Скачать файл с сервера.
-
прервать: прерывает передачу в прогресс.
загрузить
Параметры:
-
fileURL: файловой системы URL-адрес, представляющий файл на устройстве. Для обратной совместимости, это также может быть полный путь к файлу на устройстве. (См. [обратной совместимости отмечает] ниже)
-
сервер: URL-адрес сервера, чтобы получить файл, как закодированные
encodeURI()
. -
successCallback: обратного вызова, передаваемого
Metadata
объект. (Функция) -
errorCallback: обратного вызова, который выполняется в случае получения ошибки
Metadata
. Вызываемый сFileTransferError
объект. (Функция) -
опции: необязательные параметры (объект). Допустимые ключи:
- fileKey: имя элемента form. По умолчанию
file
. (DOMString) - имя файла: имя файла для использования при сохранении файла на сервере. По умолчанию
image.jpg
. (DOMString) - mimeType: mime-тип данных для загрузки. По умолчанию
image/jpeg
. (DOMString) - params: набор пар дополнительный ключ/значение для передачи в HTTP-запросе. (Объект)
- chunkedMode: следует ли загружать данные в фрагментарности потоковом режиме. По умолчанию
true
. (Логическое значение) - заголовки: Карта значений заголовок имя заголовка. Используйте массив для указания более одного значения. (Объект)
- fileKey: имя элемента form. По умолчанию
-
trustAllHosts: необязательный параметр, по умолчанию
false
. Если значениеtrue
, она принимает все сертификаты безопасности. Это полезно, поскольку Android отвергает самозаверяющие сертификаты. Не рекомендуется для использования в производстве. Поддерживается на Android и iOS. (логическое значение)
Пример
// !! Assumes variable fileURL contains a valid URL to a text file on the device,
// for example, cdvfile://localhost/persistent/path/to/file.txt
var win = function (r) {
console.log("Code = " + r.responseCode);
console.log("Response = " + r.response);
console.log("Sent = " + r.bytesSent);
}
var fail = function (error) {
alert("An error has occurred: Code = " + error.code);
console.log("upload error source " + error.source);
console.log("upload error target " + error.target);
}
var options = new FileUploadOptions();
options.fileKey = "file";
options.fileName = fileURL.substr(fileURL.lastIndexOf('/') + 1);
options.mimeType = "text/plain";
var params = {};
params.value1 = "test";
params.value2 = "param";
options.params = params;
var ft = new FileTransfer();
ft.upload(fileURL, encodeURI("http://some.server.com/upload.php"), win, fail, options);
Пример с загружать заголовки и события Progress (Android и iOS только)
function win(r) {
console.log("Code = " + r.responseCode);
console.log("Response = " + r.response);
console.log("Sent = " + r.bytesSent);
}
function fail(error) {
alert("An error has occurred: Code = " + error.code);
console.log("upload error source " + error.source);
console.log("upload error target " + error.target);
}
var uri = encodeURI("http://some.server.com/upload.php");
var options = new FileUploadOptions();
options.fileKey="file";
options.fileName=fileURL.substr(fileURL.lastIndexOf('/')+1);
options.mimeType="text/plain";
var headers={'headerParam':'headerValue'};
options.headers = headers;
var ft = new FileTransfer();
ft.onprogress = function(progressEvent) {
if (progressEvent.lengthComputable) {
loadingStatus.setPercentage(progressEvent.loaded / progressEvent.total);
} else {
loadingStatus.increment();
}
};
ft.upload(fileURL, uri, win, fail, options);
FileUploadResult
Объект FileUploadResult
передается на успех обратного вызова метода upload()
объекта FileTransfer
.
Параметры
-
bytesSent: количество байт, отправленных на сервер как часть загрузки. (длинная)
-
responseCode: код ответа HTTP, возвращаемых сервером. (длинная)
-
ответ: ответ HTTP, возвращаемых сервером. (DOMString)
-
заголовки: заголовки ответов HTTP-сервером. (Объект)
- В настоящее время поддерживается только для iOS.
Особенности iOS
- Не поддерживает
responseCode
илиbytesSent
.
Скачать
Параметры:
-
источник: URL-адрес сервера для загрузки файла, как закодированные
encodeURI()
. -
Цель: файловой системы URL-адрес, представляющий файл на устройстве. Для обратной совместимости, это также может быть полный путь к файлу на устройстве. (См. [обратной совместимости отмечает] ниже)
-
successCallback: обратного вызова, передаваемого
FileEntry
объект. (Функция) -
errorCallback: обратного вызова, который выполняется, если возникает ошибка при получении
Metadata
. Вызываемый сFileTransferError
объект. (Функция) -
trustAllHosts: необязательный параметр, по умолчанию
false
. Если значениеtrue
, она принимает все сертификаты безопасности. Это полезно, потому что Android отвергает самозаверяющие сертификаты. Не рекомендуется для использования в производстве. Поддерживается на Android и iOS. (логическое значение) -
опции: необязательные параметры, в настоящее время только поддерживает заголовки (например авторизации (базовая аутентификация) и т.д.).
Пример
// !! Assumes variable fileURL contains a valid URL to a path on the device,
// for example, cdvfile://localhost/persistent/path/to/downloads/
var fileTransfer = new FileTransfer();
var uri = encodeURI("http://some.server.com/download.php");
fileTransfer.download(
uri,
fileURL,
function(entry) {
console.log("download complete: " + entry.toURL());
},
function(error) {
console.log("download error source " + error.source);
console.log("download error target " + error.target);
console.log("upload error code" + error.code);
},
false,
{
headers: {
"Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
}
}
);
прервать
Прерывает передачу в прогресс. Onerror обратного вызова передается объект FileTransferError, который имеет код ошибки FileTransferError.ABORT_ERR.
Пример
// !! Assumes variable fileURL contains a valid URL to a text file on the device,
// for example, cdvfile://localhost/persistent/path/to/file.txt
var win = function(r) {
console.log("Should not be called.");
}
var fail = function(error) {
// error.code == FileTransferError.ABORT_ERR
alert("An error has occurred: Code = " + error.code);
console.log("upload error source " + error.source);
console.log("upload error target " + error.target);
}
var options = new FileUploadOptions();
options.fileKey="file";
options.fileName="myphoto.jpg";
options.mimeType="image/jpeg";
var ft = new FileTransfer();
ft.upload(fileURL, encodeURI("http://some.server.com/upload.php"), win, fail, options);
ft.abort();
FileTransferError
A FileTransferError
при ошибке обратного вызова передается объект, при возникновении ошибки.
Параметры
-
код: один из кодов стандартных ошибок, перечисленные ниже. (Число)
-
источник: URL-адрес источника. (Строка)
-
Цель: URL-адрес к целевому объекту. (Строка)
-
http_status: код состояния HTTP. Этот атрибут доступен только при код ответа от HTTP-соединения. (Число)
-
исключение: либо e.getMessage или e.toString (строка)
Константы
- 1 =
FileTransferError.FILE_NOT_FOUND_ERR
- 2 =
FileTransferError.INVALID_URL_ERR
- 3 =
FileTransferError.CONNECTION_ERR
- 4 =
FileTransferError.ABORT_ERR
- 5 =
FileTransferError.NOT_MODIFIED_ERR
Обратной совместимости отмечает
Предыдущие версии этого плагина будет принимать только устройства Абсолют файлам как источник для закачки, или как целевых для загрузок. Обычно эти пути бы формы
/var/mobile/Applications/<application UUID>/Documents/path/to/file (iOS)
/storage/emulated/0/path/to/file (Android)
Для обратной совместимости, по-прежнему принимаются эти пути, и если ваше приложение зарегистрировано пути как в постоянное хранилище, то они могут продолжать использоваться.
Эти пути ранее были видны в fullPath
свойства FileEntry
и DirectoryEntry
объекты, возвращаемые файл плагина. Новые версии файла плагина, однако, не подвергать эти пути в JavaScript.
Если вы переходите на новый (1.0.0 или новее) версию файла и вы ранее использовали entry.fullPath
в качестве аргументов download()
или upload()
, то вам необходимо будет изменить код для использования файловой системы URL вместо.
FileEntry.toURL()
и DirectoryEntry.toURL()
возвращает URL-адрес формы файловой системы
cdvfile://localhost/persistent/path/to/file
которые могут быть использованы вместо абсолютного пути в обоих download()
и upload()
методы.