工作需要,java实现了一个FTP上传文件的例子。

代码如下:

首先把FTP使用过程中需要的一些信息包装成一个类。

FTPModel.java

import java.io.InputStream;

import java.io.Serializable;

public class FTPModel implements Serializable{

private String url;

private int port;

private String username;

private String password;

private String path;

private String filename;

public String getUrl() {

return url;

}

public void setUrl(String url) {

this.url = url;

}

public int getPort() {

return port;

}

public void setPort(int port) {

this.port = port;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getPath() {

return path;

}

public void setPath(String path) {

this.path = path;

}

public String getFilename() {

return filename;

}

public void setFilename(String filename) {

this.filename = filename;

}

}

FTP连接需要的配置信息

ftp.properties

ftp.url = 172.16.100.50

ftp.port = 22

ftp.username = username

ftp.password = password

ftp.path = /home/ihome/House/

使用spring来读取配置文件

spring配置信息

WEB-INF/classes/ftp.properties

假设要在ChomeFileUpload.java中读取配置信息

ChomeFileUpload.java中添加代码

private String url;

private int port;

private String username;

private String password;

private String path;

public String getUrl() {

return url;

}

public void setUrl(String url) {

this.url = url;

}

public int getPort() {

return port;

}

public void setPort(int port) {

this.port = port;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getPath() {

return path;

}

public void setPath(String path) {

this.path = path;

}

spring配置文件中配置信息

FTPUtil.java

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

import org.apache.commons.net.ftp.FTPClient;

import org.apache.commons.net.ftp.FTPReply;

import com.agree.ihome.models.FTPModel;

import com.jcraft.jsch.Channel;

import com.jcraft.jsch.ChannelSftp;

import com.jcraft.jsch.JSch;

import com.jcraft.jsch.Session;

public class FTPUtil {

/**

* ftp方式连接

*/

public static boolean uploadFileByFtp(FTPModel ftpModel,InputStream input) throws Exception{

boolean success = false;

FTPClient ftp = new FTPClient();

try {

ftp.connect(ftpModel.getUrl(), ftpModel.getPort());

ftp.login(ftpModel.getUsername(), ftpModel.getPassword());

int reply = ftp.getReplyCode();//获取状态码

if (!FTPReply.isPositiveCompletion(reply)) {

ftp.disconnect();

return success;

}

ftp.changeWorkingDirectory(ftpModel.getPath());

ftp.storeFile(ftpModel.getFilename(), input);

input.close();

ftp.logout();

success = true;

} catch (Exception e) {

e.printStackTrace();

}finally{

if (ftp.isConnected()) {

try {

ftp.disconnect();//断开连接

} catch (IOException ioe) {

}

}

}

return success;

}

/**

* sftp方式连接

* @param ftpModel

* @param input

* @return

* @throws Exception

*/

public static boolean uploadFileBySFtp(FTPModel ftpModel,InputStream input) throws Exception{

boolean success = false;

ChannelSftp sftp = null;

Channel channel = null;

try {

JSch jsch = new JSch();

Session sshSession = jsch.getSession(ftpModel.getUsername(), ftpModel.getUrl(), ftpModel.getPort());

sshSession.setPassword(ftpModel.getPassword());

Properties sshConfig = new Properties();

sshConfig.put("StrictHostKeyChecking", "no");

sshSession.setConfig(sshConfig);

sshSession.connect();

channel = sshSession.openChannel("sftp");

channel.connect();

sftp = (ChannelSftp) channel;

sftp.cd(ftpModel.getPath());

sftp.put(input,ftpModel.getFilename());

success =true;

} catch (Exception e) {

e.printStackTrace();

}finally{

channel.disconnect();

input.close();

}

return success;

}

}

THE END

JAVA使用bean配置ftp_FTP文件上传(By)java相关推荐

  1. Java实现FTP批量大文件上传下载

    用Java实现FTP批量大文件上传下载 <iframe id="I0_1416224567509" style="margin: 0px; padding: 0px ...

  2. java上传文件到Oracle_用java实现ORACLE数据库的文件上传、下载

    文件上传使用: 的 UploadBean JAVA包,他的文件上传做的还不错,可进行目录或数据库的文件上传,默认使用的是ORACLE 的LONGRAW子段类型,可使用BLOB类型,但需要使用扩展JAV ...

  3. linux 服务器(CentOS7)搭建PHP环境+SSH配置+服务器文件上传配置

    Linux服务器搭建PHP环境 一.配置SSH(Xshell) 1. 公钥私钥配置(普通用户登录) 2. root用户密码登录 二.配置可视化文件上传工具(WinSCP) 1. 公钥私钥配置(普通用户 ...

  4. java使用smartupload组件实现文件上传的方法

    为什么80%的码农都做不了架构师?>>>    本文实例讲述了java使用smartupload组件实现文件上传的方法.分享给大家供大家参考.具体分析如下:文件上传几乎是所有网站都具 ...

  5. js文件上传,java后台接收

    js文件上传,java后台接收 js文件上传,java后台如何接收 前端写法如下 <!DOCTYPE html> <html><head><meta char ...

  6. java窗体广告墙(图片上传)java广告系统

    java窗体广告墙(图片上传)java广告系统 public Swingtest002() {// 设置标题setTitle("请登陆");// 绝对布局setLayout(nul ...

  7. java之spring mvc之文件上传

    目录结构如下: 注意,下面说的配置文件,一般都是值的src下的配置文件,即mvc.xml.如果是web.xml,则直接说 web.xml 1. 文件上传的注意点 表单必须是post提交,必须将 enc ...

  8. java实现上传_文件上传(java)

    最近看了一本书上的代码,代码的主要功能是实现文件的上传.但是,当我运行代码的时候竟然报错了.(我用的IDEA).有错就解决吧.以下是我遇到的几个错误. 废话不多说先附上源代码. UploadServl ...

  9. java 中 FtpClient 实现 FTP 文件上传、下载

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 源代码大部分是网上找的,查来查去,找到几个可以用的例子,改来改去,揉合成现在这个样子. 一. jar ...

最新文章

  1. 自动驾驶发展到了哪个阶段?七大应用场景走进现实
  2. 我所理解的UTF-8和GBK
  3. 组态王怎么做超级曲线_鱼怎么做才好吃?试试这个方法,吃着过瘾,还超级下饭!(收藏)...
  4. C语言 —— sprintf()函数
  5. 市电会引起UPS产生故障吗
  6. Eclipse和MyEclipse自动提示设置
  7. 关于Android HTTP边下边播
  8. 科大星云诗社动态20210905
  9. gridview不换行,高亮显示
  10. AIO系列文档(1)----图解ByteBuffer
  11. 42岁失业,有150万存款,房子无贷款,不想上班做点什么好?
  12. 2014年10月15日
  13. inDesign 教程,如何复制文本格式?
  14. HDOJ1548(BFS)
  15. STM32 GPIO模拟I2C的SHT20温湿度采样
  16. 虚拟机Ubuntu21.04全屏显示
  17. 【宠物商店管理系统】基于SSM的宠物商店系统(ppt+论文+源代码)
  18. elementUI textarea 禁止拉伸
  19. Tobii:眼球追踪技术能够提升制造行业安全性
  20. 水龙吟·为韩南涧尚书寿甲辰岁

热门文章

  1. Java 实现 AES 加解密
  2. 170308、oracle查看被锁的表和解锁
  3. Oracle实现数据不存在则插入,数据存在则更新(insert or update)
  4. JavaScript Oriented[探究面向对象的JavaScript高级语言特性]
  5. opj1837 Balance(dp)
  6. pycharm关闭自动更新
  7. WSL之Emacs中文乱码解决
  8. Activity、View、Window的理解一篇文章就够了
  9. AVC与H264 区别
  10. Mac 2016 运行Emacs,M-x键失效问题