首页 > 编程 > Java > 正文

java实现上传和下载工具类

2019-11-26 12:20:56
字体:
来源:转载
供稿:网友

本文实例为大家分享了文件上传到ftp服务工具类,供大家参考,具体内容如下

直接引用此java工具类就好

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 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;/** * ftp上传下载工具类 * <p>Title: FtpUtil</p> * <p>Description: </p> * <p>Company: www.itcast.com</p>  * @author  入云龙 * @date  2015年7月29日下午8:11:51 * @version 1.0 */public class FtpUtil {  /**    * Description: 向FTP服务器上传文件    * @param host FTP服务器hostname    * @param port FTP服务器端口    * @param username FTP登录账号    * @param password FTP登录密码    * @param basePath FTP服务器基础目录   * @param filePath FTP服务器文件存放路径。例如分日期存放:/2015/01/01。文件的路径为basePath+filePath   * @param filename 上传到FTP服务器上的文件名    * @param input 输入流    * @return 成功返回true,否则返回false    */   public static boolean uploadFile(String host, int port, String username, String password, String basePath,      String filePath, String filename, InputStream input) {    boolean result = false;    FTPClient ftp = new FTPClient();    try {      int reply;      ftp.connect(host, port);// 连接FTP服务器      // 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器      ftp.login(username, password);// 登录      reply = ftp.getReplyCode();      if (!FTPReply.isPositiveCompletion(reply)) {        ftp.disconnect();        return result;      }      //切换到上传目录      if (!ftp.changeWorkingDirectory(basePath+filePath)) {        //如果目录不存在创建目录        String[] dirs = filePath.split("/");        String tempPath = basePath;        for (String dir : dirs) {          if (null == dir || "".equals(dir)) continue;          tempPath += "/" + dir;          if (!ftp.changeWorkingDirectory(tempPath)) {            if (!ftp.makeDirectory(tempPath)) {              return result;            } else {              ftp.changeWorkingDirectory(tempPath);            }          }        }      }      //设置上传文件的类型为二进制类型      ftp.setFileType(FTP.BINARY_FILE_TYPE);      //上传文件      if (!ftp.storeFile(filename, input)) {        return result;      }      input.close();      ftp.logout();      result = true;    } catch (IOException e) {      e.printStackTrace();    } finally {      if (ftp.isConnected()) {        try {          ftp.disconnect();        } catch (IOException ioe) {        }      }    }    return result;  }    /**    * Description: 从FTP服务器下载文件    * @param host FTP服务器hostname    * @param port FTP服务器端口    * @param username FTP登录账号    * @param password FTP登录密码    * @param remotePath FTP服务器上的相对路径    * @param fileName 要下载的文件名    * @param localPath 下载后保存到本地的路径    * @return    */   public static boolean downloadFile(String host, int port, String username, String password, String remotePath,      String fileName, String localPath) {    boolean result = false;    FTPClient ftp = new FTPClient();    try {      int reply;      ftp.connect(host, port);      // 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器      ftp.login(username, password);// 登录      reply = ftp.getReplyCode();      if (!FTPReply.isPositiveCompletion(reply)) {        ftp.disconnect();        return result;      }      ftp.changeWorkingDirectory(remotePath);// 转移到FTP服务器目录      FTPFile[] fs = ftp.listFiles();      for (FTPFile ff : fs) {        if (ff.getName().equals(fileName)) {          File localFile = new File(localPath + "/" + ff.getName());          OutputStream is = new FileOutputStream(localFile);          ftp.retrieveFile(ff.getName(), is);          is.close();        }      }      ftp.logout();      result = true;    } catch (IOException e) {      e.printStackTrace();    } finally {      if (ftp.isConnected()) {        try {          ftp.disconnect();        } catch (IOException ioe) {        }      }    }    return result;  }    public static void main(String[] args) {    try {       FileInputStream in=new FileInputStream(new File("D://temp//image//gaigeming.jpg"));       boolean flag = uploadFile("192.168.25.133", 21, "ftpuser", "ftpuser", "/home/ftpuser/www/images","/2015/01/21", "gaigeming.jpg", in);       System.out.println(flag);     } catch (FileNotFoundException e) {       e.printStackTrace();     }   }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表