失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java中ftp文件上传和中文乱码解决

java中ftp文件上传和中文乱码解决

时间:2023-11-13 20:00:00

相关推荐

java中ftp文件上传和中文乱码解决

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

前几天 有个需求就是上传文件的时候,本地存一份,其他服务器也保存一份,于是就研究了一下,功能只实现了上传文件不能上传文件夹,

这里主要用到了 ftp服务器软件 网上有很多我用的是 serv-u,操作比较简单很容易像我这样的小菜使用

服务器下载地址

点击打开链接绝对安全无病毒

实现类代码

[java]view plaincopy <precode_snippet_id="244843"snippet_file_name="blog_0319_4_6086968"name="code"class="java">packagecom.core.haction;importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.PrintWriter;import.ftp.FTPClient;import.ftp.FTPReply;importcom.core.action.BaseAction;publicclassShangChuanFtpextendsBaseAction<Model>{publicShangChuanFtp(){super(Model.class);//TODOAuto-generatedconstructorstub}/****/privatestaticfinallongserialVersionUID=1L;privateFTPClientftp;/****@parampath*上传到ftp服务器哪个路径下*@paramaddr*地址*@paramport*端口号*@paramusername*用户名*@parampassword*密码*@return*@throwsException*/privatebooleanconnect(Stringpath,Stringaddr,intport,Stringusername,Stringpassword)throwsException{booleanresult=false;ftp=newFTPClient();intreply;ftp.connect(addr,port);//连接ftp服务器ftp.login(username,password);//登录ftpftp.setFileType(FTPClient.BINARY_FILE_TYPE);reply=ftp.getReplyCode();if(!FTPReply.isPositiveCompletion(reply)){ftp.disconnect();returnresult;}ftp.changeWorkingDirectory(path);result=true;returnresult;}/****@paramfile*上传的文件或文件夹**代码我是从网上找的,在使用过程中出现了,中文文件名称不能上传,后来自己改变了一下编码*@throwsException*/privatevoidupload(Filefile)throwsException{if(file.isDirectory()){//System.out.println(file.isDirectory()+"\n"+file.getName());ftp.makeDirectory(newString(file.getName().getBytes("utf-8"),"8859_1"));//给文件名转换编码//System.out.println(file.getName());ftp.changeWorkingDirectory(newString(file.getName().getBytes("utf-8"),"8859_1"));String[]files=file.list();for(inti=0;i<files.length;i++){Filefile1=newFile(file.getPath()+"\\"+files[i]);if(file1.isDirectory()){upload(file1);ftp.changeToParentDirectory();}else{Filefile2=newFile(file.getPath()+"\\"+files[i]);FileInputStreaminput=newFileInputStream(file2);ftp.storeFile(newString(file2.getName().getBytes("utf-8"),"8859_1"),input);input.close();}}}else{Filefile2=newFile(file.getPath());System.out.println(file2.getName());FileInputStreaminput=newFileInputStream(file2);ftp.storeFile(newString(file2.getName().getBytes("utf-8"),"8859_1"),input);input.close();}}//publicstaticvoidmain(String[]args)throwsException{//本地测试方法//ShangChuanFtpt=newShangChuanFtp();//t.connect("","远程服务器的Ip地址",21,"ftp的登录名","ftp的登录密码");//Filefile=newFile("d:\\webapps");//要上传的文件地址//t.upload(file);//System.out.println("上传完成");//}/****@paramfile*以下代码,住web页面用的,strut2的语法大家应该都会知道*@throwsIOException*/privateFilepphoto;privateStringpphotoFileName;privateStringpphotoFileContentType;privatestaticfinalStringfilePath="/while/photo";//上传文件到本地服务器的路径privateStringtextfield;publicStringscftp()throwsIOException{PrintWriterout=getResponse().getWriter();try{StringfileUrl=null;if(pphoto!=null){//自己封装的上传本地服务器的方法fileUrl是方法的返回值我这里是返回的文件名称fileUrl=this.saveFile(pphoto,pphotoFileName,filePath,false);System.out.println("3:"+this.getSession().getAttribute("dir"));//t.connect("","远程服务器的Ip地址",21,"ftp的登录名","ftp的登录密码");21是端口号connect("","000.000.000.000",21,"","");//this.getSession().getAttribute("dir")这个是获取的上传到本地服务器的路径,用了个懒办法,在上传方法我存到session里面,这边获取的//fileUrl是你上传的那个文件名Filefile=newFile(this.getSession().getAttribute("dir")+"/"+fileUrl);upload(file);}else{out.print("0");}}catch(Exceptione){//TODOAuto-generatedcatchblock${ctx}/json/scftp.actionSystem.out.println(e.getMessage());}out.print("1");returnnull;}publicStringgetTextfield(){returntextfield;}publicvoidsetTextfield(Stringtextfield){this.textfield=textfield;}publicFilegetPphoto(){returnpphoto;}publicvoidsetPphoto(Filepphoto){this.pphoto=pphoto;}publicStringgetPphotoFileName(){returnpphotoFileName;}publicvoidsetPphotoFileName(StringpphotoFileName){this.pphotoFileName=pphotoFileName;}publicStringgetPphotoFileContentType(){returnpphotoFileContentType;}publicvoidsetPphotoFileContentType(StringpphotoFileContentType){this.pphotoFileContentType=pphotoFileContentType;}}

如果觉得《java中ftp文件上传和中文乱码解决》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。