授予 ftp 文件 java 权限
Posted
技术标签:
【中文标题】授予 ftp 文件 java 权限【英文标题】:Giving permission to a ftp FILE java 【发布时间】:2013-06-07 02:14:39 【问题描述】:我在 android 中有一个与 ftp 连接并存储图像的类,它可以完美运行问题是当我试图将图像移动到另一个目录时(我使用 php 页面来调节该图像)它没有有权限处理,我想把权限放到0777但是只有“java代码”可以做到,但我不知道怎么做,
我正在使用 FTPClient 库
这是我的代码
File imageFile = new File(url[0]);
FTPClient ftpClient = new FTPClient(); ftpClient.connect(InetAddress.getByName("myserver"));
ftpClient.login("login", "pass");
ftpClient.changeWorkingDirectory("directory");
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
BufferedInputStream buffIn=null;
buffIn=new BufferedInputStream(new FileInputStream(imageFile));
ftpClient.enterLocalPassiveMode();
ftpClient.storeFile(url[1]+".jpg", buffIn);
buffIn.close();
ftpClient.logout();
ftpClient.disconnect();
【问题讨论】:
【参考方案1】:请参阅FTPClient 和 FTPFile API 你可以这样做:
...
ftpClient.storeFile(url[1]+".jpg", buffIn);
FTPFile file = ftpClient.mlistFile(url[1]+".jpg");
file.setPermission(FTPFile.USER_ACCESS, FTPFile.READ_PERMISSION, true);
file.setPermission(FTPFile.USER_ACCESS, FTPFile.WRITE_PERMISSION, true);
...
【讨论】:
不改变权限,文件一样但不改变权限 肯定是因为您的FTP服务器不允许您更改文件权限,您可以访问服务器日志吗? (Ps:您使用数组和listFiles
进行的编辑也可能有效,但是对于一个文件,使用mlistFile 更容易并且运行速度更快(因为mlistFile
正在重用控制连接,listFile
必须打开一个数据连接))
我是通过命令完成的,因为我没有找到有关如何将 FTPFile 放入 ftpclient 或只是更新 FTPfile 的任何信息,因此您需要使用 chmod 来完成【参考方案2】:
我是通过命令实现的
ftpClient.storeFile(url[1]+".jpg", buffIn);
boolean a = ftpClient.sendSiteCommand("chmod " + "777 " + "/absolutepath/"+url[1]+".jpg");
【讨论】:
以上是关于授予 ftp 文件 java 权限的主要内容,如果未能解决你的问题,请参考以下文章