【问题标题】:FTP via PhoneGap通过 PhoneGap 进行 FTP
【发布时间】:2013-06-17 16:25:12
【问题描述】:

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

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

我可以使用 C# 和 .NET 语言完成此过程,但不知道如何使用 PhoneGap 实现此过程。

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

如果您能回答这些问题中的一个或全部,我们将不胜感激!

【问题讨论】:

    标签: android ftp cordova


    【解决方案1】:

    在 android 中实现您想要的一个非常简单的方法是回退到本机 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方法调用native层
    • 将插件添加到 res/xml/config

    专门针对我上面贴的插件,在github自述文件中可以看到the instructions on how to install that plugin

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多