| <!DOCTYPE html> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| <html> |
| <head> |
| <!-- meta name="viewport" content="width=device-width, height=device-height, user-scalable=yes, initial-scale=2.0, maximum-scale=4.0, minimum-scale=1.0" / --> |
| <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" /> |
| <meta http-equiv="Content-type" content="text/html; charset=utf-8"/> <!-- ISO-8859-1 --> |
| <title>Cordova</title> |
| <link rel="stylesheet" href="master.css" type="text/css" media="screen"/> |
| |
| |
| <script type="text/javascript" charset="utf-8" src="cordova.js"></script> |
| |
| |
| <script type="text/javascript" charset="utf-8"> |
| |
| var deviceReady = false; |
| var persistent_root; |
| |
| var getFileSystemRoot = (function () { |
| |
| var onError = function (error) { |
| console.log('unable to retrieve file system: ' + error.code); |
| }; |
| |
| // one-time retrieval of the root file system entry |
| if (typeof persistent_root === 'undefined') { |
| window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, |
| function (fileSystem) { |
| persistent_root = fileSystem.root; |
| }, onError); |
| } |
| |
| // public function returns private root entry |
| return persistent_root; |
| |
| }); |
| |
| |
| /** |
| * Gets file or directory |
| */ |
| function getEntry(isFile, onSuccess, options) { |
| |
| var root = getFileSystemRoot(); |
| //TODO |
| console.log(typeof root); |
| var filePath = document.getElementById('filePath'); |
| |
| var onGetEntryError = function (fileError) { |
| console.log("Error creating/opening file/directory: " + fileError.code); |
| document.getElementById('file_status').innerHTML = "Error creating/opening file/directory: " + fileError.code; |
| }; |
| |
| if (isFile == true) { |
| console.log('Creating file'); |
| root.getFile( |
| filePath.value, |
| options, |
| onSuccess, |
| onGetEntryError); |
| } else { |
| console.log('Creating directory'); |
| root.getDirectory( |
| filePath.value, |
| options, |
| onSuccess, |
| onGetEntryError); |
| } |
| }; |
| |
| /** |
| * Creates or opens file/directory |
| */ |
| function createOrOpen(isFile) { |
| var onGetEntrySuccess = function (fileEntry) { |
| document.getElementById('file_status').innerHTML = "isFile: " + fileEntry.isFile + "; isDirectory: " + fileEntry.isDirectory + "; name: " + fileEntry.name + "; path: " + fileEntry.fullPath; |
| entry = fileEntry; |
| }; |
| getEntry(isFile, onGetEntrySuccess, {create: true, exclusive: true}); |
| }; |
| |
| /** |
| * Check if file/directory exists |
| */ |
| function isExists(isFile) { |
| |
| console.log("Start checking..."); |
| |
| var root = getFileSystemRoot(); |
| |
| var onError = function (fileError) { |
| console.log("Error checking file/directory: " + fileError.code); |
| document.getElementById('file_status').innerHTML = "Error checking file/directory: " + fileError.code; |
| }; |
| |
| var onSuccess = function (isExist) { |
| document.getElementById('file_status').innerHTML = "is exists: " + isExist; |
| }; |
| |
| var filePath = document.getElementById('filePath'); |
| |
| if (isFile == true) { |
| console.log('check if file exists'); |
| navigator.fileMgr.testFileExists( |
| filePath.value, |
| onSuccess, |
| onError); |
| } else { |
| navigator.fileMgr.testDirectoryExists( |
| filePath.value, |
| onSuccess, |
| onError); |
| } |
| }; |
| |
| |
| |
| /** |
| * Remove file or directory |
| */ |
| function remove(isFile) { |
| |
| var onSuccess = function (fileEntry) { |
| |
| var onRemoveError = function (fileError) { |
| console.log("Error removing file/directory: " + fileError.code); |
| document.getElementById('file_status').innerHTML = "Error removing file/directory: " + fileError.code; |
| }; |
| |
| var onRemoveSuccess = function () { |
| document.getElementById('file_status').innerHTML = "file/directory was removed"; |
| }; |
| |
| fileEntry.remove(onRemoveSuccess, onRemoveError); |
| }; |
| |
| getEntry(isFile, onSuccess, {create: false}); |
| |
| }; |
| |
| /** |
| * Writes data in file |
| */ |
| function writeInFile() { |
| var onSuccess = function (fileEntry) { |
| |
| var writer = new FileWriter(fileEntry); |
| |
| writer.onwrite = function (evt) { |
| console.log("End writing..."); |
| document.getElementById('file_status').innerHTML = writer.length + " bytes was written"; |
| }; |
| writer.onerror = function (evt) { |
| console.log("writing error"); |
| document.getElementById('file_status').innerHTML = "writing error: " + evt.target.error; |
| }; |
| writer.write(textToWrite.value); |
| console.log("End writing"); |
| }; |
| console.log("Start getting entry"); |
| getEntry(true, onSuccess, { create: false }); |
| }; |
| |
| /** |
| * Reads file as base64 string |
| */ |
| function readAsBase64() { |
| var onSuccess = function (fileEntry) { |
| var reader = new FileReader(); |
| reader.onloadend = function (evt) { |
| console.log("read success"); |
| document.getElementById('file_status').innerHTML = evt.target.result; |
| }; |
| reader.onerror = function (evt) { |
| console.log("read error"); |
| document.getElementById('file_status').innerHTML = "read error: " + evt.target.error; |
| }; |
| |
| reader.readAsDataURL(fileEntry); |
| }; |
| |
| console.log("Start getting entry"); |
| getEntry(true, onSuccess, { create: false }); |
| |
| }; |
| |
| /** |
| * Uploads selected file to specified server |
| */ |
| function uploadFile() { |
| |
| var onSuccess = function (fileUploadResult) { |
| console.log("Upload success"); |
| document.getElementById('file_status').innerHTML = "Code: " + fileUploadResult.responseCode + "; Sent = " + fileUploadResult.bytesSent + "; Response: " + fileUploadResult.response; |
| }; |
| |
| var onError = function (error) { |
| document.getElementById('file_status').innerHTML = "Upload error: " + error.code; |
| }; |
| |
| console.log("Set upload parameters"); |
| var options = new FileUploadOptions(); |
| |
| options.fileKey = "file"; |
| options.fileName = "newFile.txt"; |
| options.mimeType = "text/plain"; |
| var filePath = document.getElementById('filePath').value; |
| var server = document.getElementById('server').value; |
| |
| var params = new Object(); |
| params.key1 = "value1"; |
| params.key2 = "value2"; |
| options.params = params; |
| |
| var fileTransfer = new FileTransfer(); |
| |
| fileTransfer.upload(filePath, server, onSuccess, onError, options); |
| }; |
| |
| /** |
| * Function called when page has finished loading. |
| */ |
| function init() { |
| document.addEventListener("deviceready", function () { |
| deviceReady = true; |
| console.log("Device=" + device.platform + " " + device.version); |
| getFileSystemRoot(); |
| }, false); |
| window.setTimeout(function () { |
| if (!deviceReady) { |
| alert("Error: Cordova did not initialize. Demo will not run correctly."); |
| } |
| }, 1000); |
| } |
| |
| </script> |
| |
| </head> |
| <body onLoad="init();" id="stage" class="theme"> |
| |
| <h1>File</h1> |
| <div id="info"> |
| <span class='tb-label'>Enter file/directory name here:</span> <span id="Span1"></span> |
| <input type="text" id="filePath" style="width:250px;height:20px;"/> |
| <br/> |
| <span class='tb-label'>Enter text to write in file :</span> <span id="Span2"></span> |
| <input type="text" id="textToWrite" style="width:250px;height:20px;"/> |
| <br/> |
| <span class='tb-label'>Enter URL to upload file to: </span> <span id="Span3"></span> |
| <input type="text" id="server" value='http://posttestserver.com/post.php?dir=cordovaTest' style="width:250px;height:20px;"/> |
| <br/> |
| Result: <span id="file_status"></span> |
| </div> |
| <h2>Action</h2> |
| <a class="btn large" onclick="createOrOpen(true);">Create/Open file</a> |
| <a class="btn large" onclick="createOrOpen(false);">Create/Open directory</a> |
| <a class="btn large" onclick="isExists(true);">Check if file exists</a> |
| <a class="btn large" onclick="isExists(false);">Check if directory exists</a> |
| <a class="btn large" onclick="remove(true);">Remove file</a> |
| <a class="btn large" onclick="remove(false);">Remove directory</a> |
| <a class="btn large" onclick="writeInFile();">Write in file (type text in the second field)</a> |
| <a class="btn large" onclick="readAsBase64();">Read file as base64</a> |
| <a class="btn large" onclick="uploadFile();">Upload file</a> |
| <h2> </h2><a href="index.html" class="backBtn">Back</a> |
| </body> |
| </html> |