Java FTP上传下载删除功能实例代码
程序员文章站
2024-03-04 13:00:53
在没给大家上完整代码之前先给大家说下注意点:
ftp上传下载,容易出现乱码,记得转换
package com.yinhai.team.action;...
在没给大家上完整代码之前先给大家说下注意点:
ftp上传下载,容易出现乱码,记得转换
package com.yinhai.team.action; import java.io.file; import java.io.fileinputstream; import java.io.fileoutputstream; import java.io.ioexception; import java.io.inputstream; import java.io.outputstream; import org.apache.commons.net.ftp.ftpclient; import org.apache.commons.net.ftp.ftpfile; import org.apache.commons.net.ftp.ftpreply; public class favftputil { /** * 上传文件(可供action/controller层使用)未测试 * @param hostname ftp服务器地址 * @param port ftp服务器端口号 * @param username ftp登录帐号 * @param password ftp登录密码 * @param pathname ftp服务器保存目录 * @param filename 上传到ftp服务器后的文件名称 * @param inputstream 输入文件流 * @return */ public static boolean uploadfile(string hostname, int port, string username, string password, string pathname, string filename, inputstream inputstream){ boolean flag = false; ftpclient ftpclient = new ftpclient(); ftpclient.setcontrolencoding("utf-8"); try { //连接ftp服务器 ftpclient.connect(hostname, port); //登录ftp服务器 ftpclient.login(username, password); //是否成功登录ftp服务器 int replycode = ftpclient.getreplycode(); if(!ftpreply.ispositivecompletion(replycode)){ return flag; } ftpclient.setfiletype(ftpclient.binary_file_type); ftpclient.makedirectory(pathname); ftpclient.changeworkingdirectory(pathname); ftpclient.storefile(filename, inputstream); inputstream.close(); ftpclient.logout(); flag = true; } catch (exception e) { e.printstacktrace(); } finally{ if(ftpclient.isconnected()){ try { ftpclient.disconnect(); } catch (ioexception e) { e.printstacktrace(); } } } return flag; } /** * 上传文件(可对文件进行重命名)未测试 * @param hostname ftp服务器地址 * @param port ftp服务器端口号 * @param username ftp登录帐号 * @param password ftp登录密码 * @param pathname ftp服务器保存目录 * @param filename 上传到ftp服务器后的文件名称 * @param originfilename 待上传文件的名称(绝对地址) * @return */ public static boolean uploadfilefromproduction(string hostname, int port, string username, string password, string pathname, string filename, string originfilename){ boolean flag = false; try { inputstream inputstream = new fileinputstream(new file(originfilename)); flag = uploadfile(hostname, port, username, password, pathname, filename, inputstream); } catch (exception e) { e.printstacktrace(); } return flag; } /** * 上传文件(不可以进行文件的重命名操作) 未测试 * @param hostname ftp服务器地址 * @param port ftp服务器端口号 * @param username ftp登录帐号 * @param password ftp登录密码 * @param pathname ftp服务器保存目录 * @param originfilename 待上传文件的名称(绝对地址) * @return */ public static boolean uploadfilefromproduction(string hostname, int port, string username, string password, string pathname, string originfilename){ boolean flag = false; try { string filename = new file(originfilename).getname(); inputstream inputstream = new fileinputstream(new file(originfilename)); flag = uploadfile(hostname, port, username, password, pathname, filename, inputstream); } catch (exception e) { e.printstacktrace(); } return flag; } /** * 删除文件 未测试 * @param hostname ftp服务器地址 * @param port ftp服务器端口号 * @param username ftp登录帐号 * @param password ftp登录密码 * @param pathname ftp服务器保存目录 * @param filename 要删除的文件名称 * @return */ public static boolean deletefile(string hostname, int port, string username, string password, string pathname, string filename){ boolean flag = false; ftpclient ftpclient = new ftpclient(); try { //连接ftp服务器 ftpclient.connect(hostname, port); //登录ftp服务器 ftpclient.login(username, password); //验证ftp服务器是否登录成功 int replycode = ftpclient.getreplycode(); if(!ftpreply.ispositivecompletion(replycode)){ return flag; } //切换ftp目录 ftpclient.changeworkingdirectory(pathname); ftpclient.dele(filename); ftpclient.logout(); flag = true; } catch (exception e) { e.printstacktrace(); } finally{ if(ftpclient.isconnected()){ try { ftpclient.logout(); } catch (ioexception e) { } } } return flag; } /** * 下载文件 * @param hostname ftp服务器地址 * @param port ftp服务器端口号 * @param username ftp登录帐号 * @param password ftp登录密码 * @param pathname ftp服务器文件目录 * @param filename 文件名称 * @param localpath 下载后的文件路径 * @return */ public static boolean downloadfile(string hostname, int port, string username, string password, string pathname, string filename, string localpath){ boolean flag = false; ftpclient ftpclient = new ftpclient(); try { //连接ftp服务器 ftpclient.connect(hostname, port); //登录ftp服务器 ftpclient.login(username, password); //验证ftp服务器是否登录成功 int replycode = ftpclient.getreplycode(); if(!ftpreply.ispositivecompletion(replycode)){ return flag; } //切换ftp目录 boolean b = ftpclient.changeworkingdirectory(new string(pathname.getbytes(),"iso-8859-1")); system.out.println(b); ftpfile[] ftpfiles = ftpclient.listfiles(); for(ftpfile file : ftpfiles){ string fname = new string(file.getname().getbytes("iso-8859-1"), "utf-8"); system.out.println(fname); if(filename.equalsignorecase(fname)){ file localfile = new file(localpath + "/" + fname); outputstream os = new fileoutputstream(localfile); ftpclient.retrievefile(file.getname(), os); os.close(); } } ftpclient.logout(); flag = true; } catch (exception e) { e.printstacktrace(); } finally{ if(ftpclient.isconnected()){ try { ftpclient.logout(); } catch (ioexception e) { } } } return flag; } }
以上所述是小编给大家介绍的java ftp上传下载删除功能实例代码,希望对大家有所帮助