FTP 上传失败 Android

FTP upload does not work Android

我正在尝试使用 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();

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

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

可以是绝对路径如:

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

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

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

或者完全不同的东西。参见(一个相反的问题,但无论如何答案都会给你一个想法)。

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

所以我找到了答案,对于那些会遇到这个问题的人,首先是 POST上传 文件,始终使用 Asynctask,否则将永远无法工作。只需在您的应用程序中检查您是否具有文件管理权限,您可以在设置 -> 应用程序 -> 你的应用程序 -> 权限 -> 存储中看到检查是。就是这样。

感谢 Whosebug 的帮助!