【问题标题】:FTP upload does not work AndroidFTP 上传不起作用 Android
【发布时间】:2017-10-17 18:18:51
【问题描述】:

我正在尝试使用 Apache FTPClient 将图片从三星上传到 FTP 服务器。但这似乎不起作用。我不知道为什么,代码很好。我正在尝试选择一张图片上传到服务器上,selectedImage变量是图片文件的完整路径。

FTPClient ftpClient = new FTPClient();
ftpClient.connect(InetAddress.getByName("ftpserver"));
ftpClient.login("user", "password");
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);

FileInputStream buffIn = null;
buffIn = new FileInputStream(new File(getRealPathFromURI(selectedImage)));
ftpClient.enterLocalPassiveMode();
link = "http://ftpname/home/user/public_html/image/ayri.jpg";
ftpClient.storeFile(link, buffIn);
buffIn.close();
ftpClient.logout();
ftpClient.disconnect();

【问题讨论】:

    标签: java android ftp apache-commons-net


    【解决方案1】:

    FTPClient.storeFile 的第一个参数是用于存储上传数据的文件的路径,而不是HTTP URL

    该路径是什么,取决于您的 FTP 服务器的配置方式。

    它可以是一个绝对路径,例如:

    link = "/home/user/public_html/image/ayri.jpg";
    

    或者如果user 账户被chroot,它可以是:

    link = "/public_html/image/ayri.jpg";
    

    或者完全不同的东西。见How to get HTTP URL of file uploaded to FTP server(一个相反的问题,但答案无论如何都会给你一个想法)。

    (无论如何,很明显变量link的名字是错误的,应该是path。)

    【讨论】:

      【解决方案2】:

      所以我自己找到了答案,对于那些会遇到这个问题的人,首先对于 POSTUPLOADING 文件,如果不是,请始终使用 Asynctask永远不会工作。只需检查您的应用程序中是否有文件管理权限,您可以在设置-> 应用程序-> 您的应用程序-> 权限-> 存储中查看是。就是这样。

      感谢 stackoverflow 的帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-28
        • 1970-01-01
        • 2017-06-11
        • 2014-01-09
        • 1970-01-01
        • 1970-01-01
        • 2019-01-05
        • 2017-10-06
        相关资源
        最近更新 更多