JavaWeb使用ftp上传下载以及访问文件
主要就是把对ftp的访问封装成一个常用类就行了。
首先是要学会怎么Java怎么用,我是将其封装成我自己的一个工具包,这样下次使用的时候就可以直接拿出来用了。
package com.utils; import java.io.InputStream; /** * * @author Panpan * */ public class FtpBean { private String ftpUrl;//ftp地址 private int port;//端口号是21 private String userName;//ftp用户名 private String passWord;//ftp密码 private String ftpPath;//ftp上可以访问的文件路径 private String fileName;//文件名 private InputStream input;//输入流(用做上传文件或在ftp新建文件使用) private String localPath;//用于从ftp上下载文件存放的路径 public FtpBean() { super(); // TODO Auto-generated constructor stub } public FtpBean(String ftpUrl, int port, String userName, String passWord, String ftpPath, String fileName, InputStream input, String localPath) { super(); this.ftpUrl = ftpUrl; this.port = port; this.userName = userName; this.passWord = passWord; this.ftpPath = ftpPath; this.fileName = fileName; this.input = input; this.localPath = localPath; } }
package com.utils; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.net.ftp.FTPReply; import org.junit.Test; public class FtpUtil { /** * Description: 向FTP服务器上传文件 * @Version1.0 Jul 27, 2008 4:31:09 PM by 崔红保(cuihongbao@d-heaven.com)创建 * @param url FTP服务器hostname * @param port FTP服务器端口 * @param username FTP登录账号 * @param password FTP登录密码 * @param path FTP服务器保存目录 * @param filename 上传到FTP服务器上的文件名 * @param input 输入流 * @return 成功返回true,否则返回false */ public static boolean uploadFile(FtpBean ftpBean) { boolean success = false; FTPClient ftp = new FTPClient(); try { int reply; ftp.connect(ftpBean.getFtpUrl(), ftpBean.getPort());//连接FTP服务器 //如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器 ftp.login(ftpBean.getUserName(), ftpBean.getPassWord());//登录 ftp.setFileType(FTP.BINARY_FILE_TYPE); //设置文件类型为binary reply = ftp.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect(); return success; } ftp.changeWorkingDirectory(ftpBean.getFtpPath()); //設置為被動模式 //ftp.enterLocalPassiveMode(); ftp.storeFile(ftpBean.getFileName(), ftpBean.getInput()); ftpBean.getInput().close(); ftp.logout(); success = true; } catch (IOException e) { e.printStackTrace(); } finally { if (ftp.isConnected()) { try { ftp.disconnect(); } catch (IOException ioe) { } } } return success; } }