applican

マイページに戻る

FileTransfer ver.2.0

ローカルのファイルシステム上のファイルをサーバーにHTTPでアップロードする機能、および、サーバー上のファイルをHTTPでダウンロードして、ローカルのファイルシステムにファイルとして保存する機能です。

アプリカンAPIのver.2.0系のFileSystemのFileTransferのリファレンスです

  1. アプリカンAPIのver.1.0系のFileSystemのFileTransferのリファレンスはこちらからご確認ください。

プロパティ

onprogress: Function<ProgressResult> データチャンクが転送されるたびに呼び出されます。
  • ファイルのデータが転送されている間に進捗がある都度、何度も呼び出されます。この関数には、引数にProgressResultオブジェクトが渡され、ここから転送の進捗を知ることができます。ProgressResultオブジェクトの使い方は、サンプルコードを参照してください。

メソッド

  • abort(Function successCallback, Function<Error> errorCallback)
  • download(String source, String target, Function<FileEntry> successCallback, Function<Error> errorCallback, Boolean trustAllHosts)
  • upload(String filePath, String server, Function<FileUploadResult> successCallback, Function<Error> errorCallback, FileUploadOptions options, Boolean trustAllHosts)

ver.2.0用

abort

メソッド説明

abort(Function successCallback, Function<Error> errorCallback)

アップロードもしくはダウンロードを中止します。

パラメータ

successCallback : Function アップロードもしくはダウンロードの中止に成功した場合、もしくはファイル転送が実行されていない場合にCallbackされます。
error : Function<Error> アップロードもしくはダウンロードの中止に失敗した場合にCallbackされます。

ver.2.0用サンプルコード

function success() {
	alert("中断に成功しました。")
}

function fail() {
	alert("中断に失敗しました。")
}

// アップロードもしくはダウンロード中のFileTransfer ftに対して
ft.abort(success, fail)

download

メソッド説明

download(String source, String target, Function<FileEntry> successCallback, Function<Error> errorCallback, Boolean trustAllHosts)

ファイルをダウンロードします。ダウンロード先に同名のファイルが存在する場合は移動先のファイルを削除します。

パラメータ

source : String ファイルをダウンロードするサーバのURLを指定します。(encodeURI()によってコード化されます。)
target : String ダウンロードするファイルURLを指定します。
successCallback : Function<FileEntry> ダウンロードが成功した場合にCallbackされます。
errorCallback : Function<Error> ダウンロードが失敗した場合にCallbackされます。
trustAllHosts : Boolean 自己署名されたセキュリティ証明書を許可するかどうかの設定です。デフォルトは false に設定されています。
Androidは自己署名されたセキュリティ証明書を拒否するので、その際に役立ちますが、リリース時には推奨されません。この機能はAndroid・iOSでサポートされています。

ver.2.0用サンプルコード

//ファイル転送用オブジェクト
var ftDownload;

// ファイルシステム取得成功時
function downloadGotFS(fileSystem) {
	ftDownload = applican.filesystem.createFileTransfer();
	//ダウンロード進捗を表示
	ftDownload.onprogress = onProgress;

	var filePath = fileSystem.root.fullPath + "/example.zip";
	var downloadURL = encodeURI("http://example/example.zip")

	//ダウンロード開始
	ftDownload.download(encodeURI(downloadURL), filePath, downloadSuccess, downloadError);
}

ダウンロード成功時
function downloadSuccess(entry) {
	var dump = "ファイルをダウンロードしました。\n";
	dump    += "name : "     + entry.name     + "\n";
	dump    += "fullPath : " + entry.fullPath + "\n";
	document.getElementById("dumpAreaFile").value = dump;
	ftDownload = null;
}

// ダウンロード失敗時
function downloadError(error) {
	var dump = "downloadError\n";
	dump    += "code : "        + error.code        + "\n";
	dump    += "source : "      + error.source      + "\n";
	dump    += "target : "      + error.target      + "\n";
	dump    += "http_status : " + error.http_status + "\n";
	document.getElementById("dumpAreaFile").value = dump;
	ftDownload = null;
	alert(dump);
}

// ダウンロード進捗表示
function onProgress(progress) {
	document.getElementById("dumpAreaFile").value = progress.loaded + "/" + progress.total;
}

applican.filesystem.requestFileSystem(LocalFileSystem.PERSISTENT, 0, downloadGotFS, downloadError);

upload

メソッド説明

upload(String filePath, String server, Function<FileUploadResult> successCallback, Function<Error> errorCallback, FileUploadOptions options, Boolean trustAllHosts)

ファイルをアップロードします。アップロード先に同名のファイルが存在する場合は移動先のファイルを削除します。

パラメータ

filePath : String アップロードファイルのパスをフルパスで指定します。
server : String ファイルを受け取るサーバーのURLを指定します。
successCallback : Function<FileUploadResult> アップロードに成功した場合にCallbackされます。
errorCallback : Function<Error> アップロードに失敗した場合にCallbackされます。
options : FileUploadOptions アップロード時に設定するオプションです。項目は以下の表を確認してください。
trustAllHosts : Boolean 自己署名されたセキュリティ証明書を許可するかどうかの設定です。デフォルトは false に設定されています。
Androidは自己署名されたセキュリティ証明書を拒否するので、その際に役立ちますが、リリース時には推奨されません。この機能はAndroid・iOSでサポートされています。

FileUploadOptions

filePath : String
server : String
trustAllHosts : Boolean
fileKey : String
fileName : String
mimeType : String
params : Object
chunkedMode : Boolean
headers : { [key : String] : Object }

FileUploadResult

ファイルアップード成功後にCallback関数に引数として渡されるオブジェクトです。

bytesSent : Number アップロード時にサーバに送信されたバイト数です。
responseCode : Number アップロード時にサーバより渡されたレスポンスコードです。
response : String アップロード時にサーバより渡されたレスポンスです。
headers : Object アップロード時にサーバより渡されたレスポンスヘッダです。
※iOSのみこの機能をサポートしています。

※iOS QuirksはresponseCodeまたはbytesSentをサポートしていません。

ver.2.0用サンプルコード

// ファイルシステム取得成功
function uploadGotFS(fileSystem) {
	fileSystem.root.getFile("readme.txt", {create:true, exclusive:false}, uploadGotFileEntry, uploadError);
}

// FileEntry取得成功
function uploadGotFileEntry(fileEntry) {
	var options = {
		fileKey : 'file',
		fileName : 'readme.txt',
		mimeType : 'text/plain',
		params : {
			value1 : 'test',
			value2 : 'param'
		},
		headers : {
			headerParam : 'headerValue'
		}
	}

	var ft = applican.filesystem.createFileTransfer();
	//アップロード進捗を表示
	ft.onprogress = onProgress;

	//アップロード
	var uploadURL = encodeURI("http://example.com");

	ft.upload(fileEntry.fullPath, uploadURL, uploadSuccess, uploadError, options);
}

// アップロード成功時のコールバック
function uploadSuccess(result) {
	var dump = "ファイルアップロードしました。\n";
	dump    += "responseCode : " + result.responseCode + "\n";
	dump    += "response : "     + result.response     + "\n";
	dump    += "bytesSent : "    + result.bytesSent    + "\n";
	document.getElementById("dumpAreaFile").value = dump;
}

// アップロード失敗時のコールバック
function uploadError(error) {
	var dump = "ファイルアップロードに失敗しました。\n";
	dump    += "code : "        + error.code        + "\n";
	dump    += "source : "      + error.source      + "\n";
	dump    += "target : "      + error.target      + "\n";
	dump    += "http_status : " + error.http_status + "\n";
	document.getElementById("dumpAreaFile").value = dump;
	alert(dump);
}

// アップロード進捗のコールバック
function onProgress(progress) {
	document.getElementById("dumpAreaFile").value = progress.loaded + "/" + progress.total;
}

applican.filesystem.requestFileSystem(LocalFileSystem.PERSISTENT, 0, uploadGotFS, uploadError);

new で生成できなくなった API

FileTransfer

// ver.1.0
var ft = new FileTransfer();

// ver.2.0
const ft = applican.filesystem.createFileTransfer();
loading