FTP通过PhoneGap

时间:2013-06-14 00:09:43

标签: android ftp cordova

我想使用PhoneGap开发一个FTP文件系统。

基本上我希望用户能够拥有一个他们可以连接到的站点列表,并获取整个根目录以查看和更改文件名。

我可以使用C#和.NET语言执行此过程,但不了解使用PhoneGap实现此目的。

我可以使用特定的库吗? 我是否必须从头开发一切? 可以将Native与PhoneGap混合使用吗? 我将在这里实现什么样的安全保障?

如果你能回答其中的一个或所有问题,我们非常感谢!

1 个答案:

答案 0 :(得分:0)

在android中实现所需内容的一种非常简单的方法是回退到Native java代码并使用Apache FTPClient class

有一个非常好的易读插件here。你可以得到它,看看它是如何工作的。基本上它使用FTP客户端类,它有两个内置方法Upload一个文件和Download来自服务器的文件。

再次展开Execute方法以执行RenameDelete等其他操作非常容易:

Java代码:

public boolean execute (...) { 

       ...
       if (action.equals("get")) {
            get(filename, url);
        }
        else if (action.equals("put")) {
            put(filename, url);
        }
        else if (action.equals("delete")){
           delete(filename,url);
        } else if (action.equals("rename")){
           rename(filename,url);
        }
        ...
 } 

private void delete(String filename, URL url) throws IOException {
    FTPClient f = setup(url);
    f.deleteFile(extractFileName(url));
    teardown(f);
}

private void rename(String newFilename, URL url) throws IOException {
        FTPClient f = setup(url);    
        f.rename(extractFileName(url),newFilename);
        buffOut.flush();
        buffOut.close();
        teardown(f);
    }

并在javascript图层上添加这些方法

FtpClient.prototype.delete = function(url, successCallback, errorCallback) {
         return exec(successCallback, errorCallback, "FtpClient", "get", [" ", url]);
    };
   FtpClient.prototype.rename = function(newFilename, url, successCallback, errorCallback) {
         return exec(successCallback, errorCallback, "FtpClient", "get", [newFilename, url]);
    };

如果您需要有关如何使用phonegap插件的说明,请参阅指南here。基本上你需要做下面的事情:

  • 编写您的java代码
  • 编写您的javascript代码并使用exec方法调用本机层
  • 将您的插件添加到res / xml / config

特别是对于我上面发布的插件,在github自述文件中,您可以看到the instructions on how to install that plugin