/**

* 向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 upload(String host, int port, String username, String password,

String basePath, String filePath, String filename, InputStream input) {

boolean result = false;

FTPClient ftp = new FTPClient();

try {

// 登录

if(!loginToFtp(ftp, host, port, username, password))

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;

}

// 登录ftp服务器

private static boolean loginToFtp(FTPClient ftp, String host, int port, String username, String password) throws SocketException, IOException {

int reply;

ftp.connect(host, port);

// 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器

ftp.login(username, password);// 登录

reply = ftp.getReplyCode();

if (!FTPReply.isPositiveCompletion(reply)) {

ftp.disconnect();

return false;

}

return true;

}

java ftp上传失败_使用java进行ftp文件上传出现425错误相关推荐

  1. flex java 上传下载_完整的Flex多文件上传实例

    客户端代码:fileUpload.xml-------------------------------------------------------------------------------- ...

  2. java反序列化流建立失败_关于java:处理dubbo反序列化失败的坑

    前言 今天下午,当我通过一个小时的奋"键"疾"码",筹备好好的审查一下(摸鱼)本人写的代码,通过一段时间审查(摸的差不多了,该上班了),得出一个论断我写的代码很 ...

  3. 文件上传漏洞_通达OA前台任意文件上传漏洞+文件包含漏洞导致getshell

    点击蓝字|关注我们 通达OA前台任意文件上传漏洞 +文件包含漏洞导致getshell 一.漏洞介绍/Profile/ 通达OA介绍: 通达OA(Office Anywhere网络智能办公系统)是由北京 ...

  4. java导出mysql数据库失败_利用Java进行MySql数据库的导入和导出

    利用Java来进行Mysql数据库的导入和导出的总体思想是通过Java来调用命令窗口执行相应的命令. MySql导出数据库的命令如下: mysqldump -uusername -ppassword  ...

  5. java 默认数据库创建路径_无法创建数据库路径文件:/ user / hive /仓库错误

    我有一个3个节点的群集,并且在运行某些HVE查询时遇到以下错误 FAILED:元数据错误:MetaException(消息:无法创建数据库路径文件:/user/hive/warehouse/db_du ...

  6. java awt文件上传_springMVC实现前台带进度条文件上传的示例代码

    项目框架采用spring+hibernate+springMVC如果上传文件不想使用flash那么你可以采用HTML5;截图前段模块是bootstarp框架;不废话直接来代码;spring-mvc配置 ...

  7. 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目

    王者荣耀是当下热门手游之一,小伙伴们是否想过如何制作一款属于自己的王者荣耀游戏呢? 本课程讲解了一个王者荣耀游戏的详细编写流程,即使你是刚入门Java的新手,只要你简单掌握了该游戏所需要的JavaSE ...

  8. c++读取json文件_[SpringMVC]-SpringMVC架构-07-SpringMVC文件上传

    SpringMVC学习 SpringMVC文件上传 文件上传相关 操作步骤: a.在pom.xml中添加文件上传相关jar包 b.配置文件解析器(在核心配置文件springmvc.xml.相关jsp文 ...

  9. python删除失败_对python 各种删除文件失败的处理方式分享

    对python 各种删除文件失败的处理方式分享 调用python提供的各种删除文件的操作均失败 返回值5,拒绝访问,但是多次确认文件没有被打开,文件是从一个zip包中解压出来后,没有任何打开读写等操作 ...

最新文章

  1. 把ACL论文「几乎一字不落」抄到AAAI 2021上,作者回应:属借鉴
  2. Codeforces Round #309 (Div. 2) C
  3. html5圣诞贺卡,2016圣诞节手工贺卡图片大全
  4. SAP ABAP里数据库表的Storage Parameters从哪里来的
  5. TensorRT安装及使用教程
  6. 架构无小事:QQ碰微信 贴吧遇微博
  7. unity发布成手机app怎么不能被顶_Unity中Android API 28之后无法HTTP请求
  8. mysql8.0.12插件_MySQL8.0.12 安装及配置
  9. 完整的Android 新浪微博api调用DEMO
  10. php设计一个盒子类代码_PHP设计模式之备忘录模式(Memento)代码实例大全(25)...
  11. opengl 关于glGenBuffers函数没有定义
  12. windows系统使用bat命令文件启动redis
  13. 手把手教你用Python操纵Word自动编写离职报告!
  14. 在php中phr是什么意思,虽败犹荣 AGO.phr:WESG让我们如获新生
  15. 新能源汽车VCU/HCU,BMS和MCU仿真测试系统实验室
  16. python用re模块实现数学公式计算
  17. 那些清华北大随便挑的高考状元们,后来都过上了怎样的生活?
  18. 时延、发送时延、传输时延、处理时延、排队时延、时延带宽积
  19. 正则匹配问号_跟BBEdit学正则表达式,轻松地学习晦涩难解的语法
  20. 一文看完澜舟科技被EMNLP'22录用的三篇论文

热门文章

  1. Vmware虚拟机文件介绍、克隆及文件名称更改方法
  2. MTK android系统源码修改快速上手
  3. idea 2020.1 连接MySQL数据库的两种方法
  4. 图像处理知多少?准大厂算法工程师30+场秋招后总结的面经问题详解
  5. 【C语言】写一个斗牛小游戏的发牌器
  6. 道周中学2012年高三地理寒假作业答案
  7. 几何绘图软件哪个好?
  8. The operating system 'Windows Vista Version 6.1' is not supported
  9. 无刷直流电机感应电动势为什么是梯形波?
  10. Opencv图像基本操作——读取、显示、截取图像、属性、颜色通道、边界填充、图像融合