Android 无法使用 FTP 上传

问题描述 投票:0回答:2

我正在尝试使用 Apache

FTPClient
将图片从 Samsung 上传到 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
2个回答
0
投票

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

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

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

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

或者如果

user
帐户已 chroot,则可以是:

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

或者完全不同的东西。请参阅如何获取上传到 FTP 服务器的文件的 HTTP URL(一个相反的问题,但答案无论如何都会给你一个想法)。

(无论如何,显然变量

link
的名字是错误的,应该是
path
。)


-1
投票

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

感谢 stackoverflow 的帮助!

© www.soinside.com 2019 - 2024. All rights reserved.