授予 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 放入 ft​​pclient 或只是更新 FTPfile 的任何信息,因此您需要使用 chmod 来完成【参考方案2】:

我是通过命令实现的

 ftpClient.storeFile(url[1]+".jpg", buffIn);
         boolean a = ftpClient.sendSiteCommand("chmod " + "777 " + "/absolutepath/"+url[1]+".jpg");

【讨论】:

以上是关于授予 ftp 文件 java 权限的主要内容,如果未能解决你的问题,请参考以下文章

授予 rt.jar 权限

HDFS为文件及其所有目录授予权限

Java通过ftp上传Linux文件权限问题

如何在安全管理器策略文件中为可变父目录授予文件读/写权限

如何在c#中授予文件夹权限?

权限问题导致无法删除ftp文件