首页 > 编程知识 正文

ftp上传文件刷新后消失(ftp上传文件时提示没有权限)

时间:2023-05-06 15:18:58 阅读:71863 作者:4942

在开发ftp文件下载或上载没有数据的问题时,遇到了在ftp中同步文件的任务,突然遇到了文件上载或下载失败的问题。 我的文件要求根据字段中指定的多目录上传,所以在网上也看到了很多帖子没有提到这个问题。 以下是我在实验中得出的结论。

一个叫ftp的家伙有个洞,不支持文件上载和下载,也不支持在多目录下运行。 也就是说,必须先进入文件所在的目录,然后才能执行上载和下载操作。 否则,会报告错误,或者上传或下载失败。 不说废话直接上代码

Scala版本的

import java.io.{File,FileInputStream,FileOutputStream, io exception } importorg.Apache.com mons.net.FTP.{ FTP } FTP reply } objectftputils { varftp : FTP client=nullvaroroon defFTPlogin(IP3360string (已注册为name: String,pwd: String ()={ ftp=new FTPClient ) ) ftp.enterLocalPassiveMode FTP.setcontrolencoding(utf-8 ) ) valreply : int=FTP.getreplycodeif (! FTP reply.ispositivecompletion (reply ) { ftp.disconnect ) println )“FTP服务器连接失败”) root path=FTP.printworkingdirion race(FTP}/***本地数据上传到FTP*/defputfile ) file:string,path : string FTP : FTP客户端() varis store 333660 FTP ) /分隔符为''其中file.separator *2val filename : string=file.split (file.separator ).lastistore=FTP new file inputstream (new file (path ) ) (FTP.changeworkingdirectory (root path ) isStore } } ) catch ) caseee 3360 io excece 将数据从FTP下载到本地目录*/defgetfile(infile:string,outFile: String, FTP : FTP客户端() varisload:boolean=falsetry ) FTP.changeworkingdirectory (根路径) changeworkdir ) infile, changeworkingdirectory ) ) change workd=null (file.get parent file.getabsolutefile.mkdirs ) ) valout :文件输出存储is load=FTP.retrieve file (infile.split ) file.separator ).last, out ) FTP.changeworkingdirectory (根路径) isload (catch ) casee : io exception=e.print stack trace () is load )/FTP : FTP客户端() val files : array [ string ]=file.split ) file.separator (I-0 until files.length-1 ) )

importorg.Apache.com mons.net.FTP.FTP客户端; importorg.Apache.com mons.net.FTP.FTP reply; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; publicclassftputils { FTP客户端FTP=new FTP客户端(; String rootPath; publicftpclientftplogin (stringip,int port,String name,String pwd ) throwsioexception (FTP.enterlocalpasivemode ); FTP.connect(IP,port ); FTP.setcontrolencoding(utf-8 ); int reply=ftp.getReplyCode (; if (! FTP reply.ispositivecompletion (reply ) ) { ftp.disconnect; system.out.println(FTP服务器连接失败); } root path=FTP.printworkingdirectory (; 返回前端传输协议; } publicbooleangetfile (string infile,String outFile,ftp客户端ftp ) throwsioexception (FTP.changeworkingdirectory ) rot 文件文件=new file (outfile ); if (文件. get parent file ()!=null () { file.getParentFile ().getAbsoluteFile ) ).mkdirs ); } fileoutputstreamout=新文件输出流(outfile ); string [ ] paths=infile.split (file.separator ); booleanisloaded=FTP.retrieve file (paths [ paths.length-1 ],out ); FTP.changeworkingdirectory; 返回装载; } publicbooleanputfile (字符串文件、字符串路径、FTP客户端FTP ) throwsioexception (更改工作器)文件、FTP ); //分隔符为''这里是两个file.separatorstring [ ] paths=file.split (file.separator ); string filename=paths [ paths.length-1 ]; booleanisstored=FTP.storefile (filename,newfileinputstream ) new file (path ); FTP.changeworkingdirectory; 返回存储; } publicvoidchangeworkdir (string file,FTP客户端FTP ) throwsioexception ) string[]paths=file.split ) file.separator FTP.changeworkingdirectory (path ); } }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。