以前做过类似的情况,当时是先从数据库读取文件放到本地然后从本地再上传到FTP服务器;(JAVA操作数据库→本地→FTP服务器)
今天这个功能则是(JAVA操作数据库→FTP服务器);

一上来直接把以前的代码拉出来用了
import org.apache.commons.net.ftp.FTPClient;
诶?怎么报错呀。。。没有这个包?当时逗比了 第一反应看到报错提示 就把切换成了
sun.net.ftp.FtpClient; 然后直接连上了,但是往FTP上传时老是定位不到正确的方法;什么putFile putFileStream 好像都会报错。。。 (原因也可能跟下面有关系)

纠结了半天再网上找了找发现import org.apache.commons.net.ftp.FTPClient; 逗比了我,这里报错明显就是没JAR包呀。。。因为我的Meavn我感觉基本java包都有,第一下没想到这个问题 然后百度了下 需要引入

<dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.0</version>
</dependency>

然后apache下的这个包有了。

/**
*
* @param path 上传到ftp服务器哪个路径下
* @param addr 地址
* @param port 端口号
* @param username 用户名
* @param password 密码
* @return
* @throws Exception
*/

public  boolean connect(String addr,String port,String path,String username,String password) throws Exception {      boolean result = false; ftp = new FTPClient();      int reply;      ftp.connect(addr,Integer.parseInt(port));      ftp.login(username,password);      ftp.setFileType(FTPClient.BINARY_FILE_TYPE);      reply = ftp.getReplyCode();    // System.out.println("初始化Ftp得到的reply========="+reply);if (!FTPReply.isPositiveCompletion(reply)) {      ftp.disconnect(); LogUtils.getLog().info("未连接上");return result;      }  // FTPFile[] files=ftp.listFiles("/");LogUtils.getLog().info("连接上了");ftp.changeWorkingDirectory(path); result = true;      return result;
}

这样也就连接上了。。。

//通过流写入文件则通过以下代码InputStream is = null;is = new ByteArrayInputStream(sb.toString().getBytes());//sb是要写入的内容ftp.setControlEncoding("GBK");//不加入会乱码ftp.enterLocalPassiveMode();//这个目前没get到 boolean isStore= ftp.storeFile(fileName.toString(),is);//最主要的一句话if(isStore==false) {LogUtils.getLog().info("storeFile写入数据失败");}else {LogUtils.getLog().info("文件写入成功");}System.out.println("ftp.getReplyCode()========="+ftp.getReplyCode());

ftp.storeFile这个方法返回一个boolean值;如果是true代表传送成功;false则代表失败。 前面一直返回false;也不提示什么错。。。。这个最恶心,我怎么知道哪里错了。然后继续搜索到这样一句话
https://stackoverflow.com/questions/8154115/ftpclient-storefile-always-return-false
Immediately after connecting is the only real time you need to check the reply code (because connect is of type void). The convention for all the FTP command methods in FTPClient is such that they either return a boolean value or some other value. The boolean methods return true on a successful completion reply from the FTP server and false on a reply resulting in an error condition or failure. The methods returning a value other than boolean return a value containing the higher level data produced by the FTP command, or null if a reply resulted in an error condition or failure. If you want to access the exact FTP reply code causing a success or failure, you must call getReplyCode after a success or failure.
大概意思就是通过ftp.getReplyCode()得到返回码 然后可以去
https://en.wikipedia.org/wiki/List_of_FTP_server_return_codes 这里查询原因
我这边一直报错550。。
列表提示550代表 Requested action not taken. File unavailable (e.g., file not found, no access). 请求未执行。。。虽然我还是不知道怎么回事 但是大概意思就是文件未找到或者没权限。

我就去找局方问了下他重新给我了一个地址。。。同样连不上。。。但是却报了一个错误 socekt closed… 意思就是发送的时候 连接关闭了。然后我就准备去看源码,但是好像刚才下commons-net的时候 只下载了jar包没下载source源文件。
查了下,把eclipse的meavn设置下
重新下载就行了。。。然后重新下载的时候我把 commons-net的版本从3.0改为3.6。
只是想下载个最新的版本而已。
但是TMD就这样 竟然不报错。。。socket closed 竟然不出现了 。。。直接提示我上传成功,而且是真的成功了。

然而第一次给我的FTP地址还是会报错。。很奇怪哦。。这个工作还没做完。。里面有错误我会持续更新下 直到这个工作完成。。

继续更新 大清早的思路就是能开阔一点。。 昨天550那个错误百思不得其解,今天早上就找到原因了 不废话没图我说个JB。
我手动在XFTP里面拖拽文件 然后提示错误 点开一看 是不是好熟悉呀哈哈哈哈。说明不是代码问题了,FTP服务器有问题

java直接从数据库读取文件写入FTP服务器相关推荐

  1. java连接Excel数据库读取,写入,操纵Excel表格

    java连接Excel数据库读取,写入,操纵Excel表格 (2009-11-15 14:21:03) 转载 标签: java excel 连接 杂谈 分类:技术文档 java连接MicroSoft ...

  2. Java基于FTPClient上传文件到FTP服务器

    1.上传文件到FTP服务器,用FTPClient类,引入commons-net-3.1.jar包 2.参考代码: //上传ftppublic static boolean uploadFile(Str ...

  3. java properties更新_对Java配置文件Properties的读取、写入与更新操作

    String filepath=System.getProperty("user.dir"); 对下面的程序很有用... /** * 实现对Java配置文件Properties的读 ...

  4. java配置文件强制更新_对Java配置文件Properties的读取、写入与更新操作

    对Java配置文件Properties的读取.写入与更新操作 注:当前项目路径是 String filepath=System.getProperty("user.dir"); 对 ...

  5. Java配置文件Properties的读取、写入与更新操作

    /** * 实现对Java配置文件Properties的读取.写入与更新操作 */ package test; import java.io.BufferedInputStream; import j ...

  6. python open写入_Python3 open() 函数详解 读取文件写入文件追加文件二进制文件

    Python3 open() 函数详解 读取文件写入文件追加文件二进制文件 open()函数的主要作用是打开文件并返回相应文件对象,使用文件对象可以对当前文件进行读取.写入.追加等操作,默认情况下&q ...

  7. java 文件路径读取,java中依据路径读取文件

    java中根据路径读取文件 根据文件路径读取文件.具体代码如下: /** * 根据文件路径读取文件 * @param path * @return String * @throws IOExcepti ...

  8. java 使用相对路径读取文件

    java 使用相对路径读取文件 1.java project环境,使用java.io用相对路径读取文件的例子:  *目录结构:   DecisionTree             |___src   ...

  9. java上传文件到FTP服务器

    欢迎来到小生的博客,各种工具类,常用知识点.技巧持续更新中....... 感谢大家点赞关注,希望大家能够给小生更多的支持. 祝您阅读愉快! 有任何疑问可以加小生QQ群咨询:107680366 前段时间 ...

最新文章

  1. JAVA IO流复制文件夹及里面的所有文件
  2. 腾讯云:新基建大潮下国产数据库的探索与思考 | 云·创课程实录
  3. 循环链表(约瑟夫环)的建立及C语言实现
  4. 【Nginx】错误: [emerg] “proxy_pass“ cannot have URI part in location given by regular expression,...
  5. 额,看房没戴头盔,损失二十万 。。。
  6. mysql 条件分析_数据分析之mysql
  7. LSGO软件技术团队2015~2016学年第二周(0907~0912)总结
  8. LeetCode 413. 等差数列划分(DP)
  9. python的人工智能和c++的有什么区别_为什么人工智能岗位有些招聘C/C 有些招聘Python到底哪门编程语言更重要(恰恰相反C++在人工智能方面的用处很大)...
  10. 惠普计算机笔记本打印机官网,HP2621打印机驱动
  11. guns使用注意问题
  12. 聚类分析应用之市场细分
  13. 用CentOS 6快速配置一台企业级Web代理服务器
  14. Java基础语法总结
  15. JavaScript swiper
  16. 【Android】【TP】TP开发常见问题分析
  17. imx6ull 以太网
  18. VB程序设计教程(第四版)龚沛曾 实验8-2
  19. CSS如何实现文字两端对齐
  20. 中兴路由器中静态路由的配置

热门文章

  1. Bochs源码分析 - 20: 开启保护模式
  2. 小猪的猪栏文章类目导航
  3. 如何评估服务端压测指标
  4. 在uni-App(Vue)中使用 SVG + JS 自定义动画:模拟关键帧
  5. 对拉格朗日乘数法的直观认识
  6. 图像匹配—NCC算法,即归一化互相关匹配
  7. slam优化库,优化方法,G2o Ceres的学习
  8. 总结八:面试程序员前需要的准备工作
  9. idea的output窗口丢失问题
  10. 轻量应用服务器 饥荒,饥荒服务端世界设置生成