解决FTPClient上传文件为空,显示0字节
JAVA使用FTPClient上传文件时总是为空,而使用FileZilla客户端时却不会。
后来查了下资料,FTP服务器有被动模式和主动模式。(具体查另外资料)
在JAVA中将FTPClient设置为被动模式即可解决问题。
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient; import java.io.File;
import java.io.FileInputStream; /**
* Created by Administrator on 2018/4/13.
*/
public class FtpUtil { public void testFTPClient() throws Exception {
try {
//创建一个FTPClient对象
FTPClient ftpClient = new FTPClient();
//创建ftp链接
ftpClient.connect("***.***.***.***", 21);
//登录ftp,使用用戶名和密碼
ftpClient.login("****", "****");
//读取本地文件
FileInputStream inputStream = new FileInputStream(new File("filePath"));
//设置为被动模式(如上传文件夹成功,不能上传文件,注释这行,否则报错refused:connect )
ftpClient.enterLocalPassiveMode();
//设置上传路径
ftpClient.changeWorkingDirectory("FTP服务器文件目录");
//修改上传文件格式
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
System.out.println("1");
//上传文件
ftpClient.storeFile("hello1.jpg", inputStream);
System.out.println("2");
//关闭链接
ftpClient.logout();
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
}
补充:
调用FTPClient.enterLocalPassiveMode();这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。为什么要这样做呢,因为ftp server可能每次开启不同的端口来传输数据,但是在linux上,由于安全限制,可能某些端口没有开启,所以就出现阻塞。
到此问题圆满解决!
解决FTPClient上传文件为空,显示0字节的更多相关文章
- Commons.net FTPClient 上传文件
使用 Commons.net FTPClient 上传 文件打不开. 原因,FTPClient 默认使用 ASCII 传输文件,FTP.ASCII_FILE_TYPE; 需要在登录代码后重新指定传输方 ...
- FtpClient上传文件速度非常慢,而且大小为0,上传失败
问题发生: 环境:VSFTP+FTPClient+Client 使用FTPClient上传文件的时候总是卡住,而且文件大小为0,上传失败, 解决方案: 添加代码:调用FTPClient的enterLo ...
- 使用input:file控件在微信内置浏览器上传文件返回未显示选择的文件
使用input:file控件在微信内置浏览器上传文件返回未显示选择的文件 原来的写法: <input type="file" accept="image/x-png ...
- Ajax上传文件进度条显示
要实现进度条的显示,就要知道两个参数,上传的大小和总文件的大小 html5提供了一个上传过程事件,在上传过程中不断触发,然后用已上传的大 小/总大小,计算上传的百分比,然后用这个百分比控制div框的显 ...
- 不带插件 ,自己写js,实现批量上传文件及进度显示
今天接受项目中要完成文件批量上传文件而且还要显示上传进度,一开始觉得这个应该不是很麻烦,当我在做的时候遇到了很多问题,很头疼啊. 不过看了别人写的代码,自己也测试过,发现网上好多都存在一些问题,并不是 ...
- 解决wordpress上传文件出现http错误问题
解决wordpress上传文件出现http错误问题 问题现象 今天上传约1.4m大小的gif文件到wordpress的媒体库时失败,提示http错误. 原因 由于之前一直上传图片都是可以的,所以推测最 ...
- 【费元星】crt 无法上传文件,总是显示盾牌表示-完美解决
将如下内容保存到文件中,已.bat 结尾 taskkill /f /im explorer.exeattrib -s -r -h "%userprofile%\AppData\Local\i ...
- java web程序上传文件,浏览器显示连接被重置
上传文件时,到13%时浏览器显示连接被重置如图: 参考网上很多方法 比如设置server.xml 的相应大小.时间,然并没有解决问题 connectionTimeout="2000000&q ...
- ajax上传文件及进度显示
之前在博文:原生ajax写法就提及过ajax2.0与1.0的差别是多了FormData和利用FormData文件上传(当然还有跨域,但不是本文的重点). 那么具体怎么样实现ajax上传文件呢? 一般来 ...
随机推荐
- Java控制台微动画输出 “草泥马神兽”
public static void gameClearance() { String s = "\r ┏┛ ┻━━━━━┛ ┻┓\r ┃ ┃\r ┃ ━ ┃\ ...
- 割点判断+luogu 3469 POI2008 BLO
1.根节点,有2棵及以上子树 2.非根节点,有子节点dfn[u]<=low[v] #include <bits/stdc++.h> #define N 1000050 using n ...
- 高并发秒杀系统--mybatis整合技巧
mybatis实现DAO接口编码技巧 1.XML文件通过namespace命名空间关联接口类 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD ...
- group by having 判断重复的有几条数据
判断字段id和字段zhi重复的条数 group by 和having 解释:前提必须了解sql语言中一种特殊的函数:聚合函数,--例如SUM, COUNT, MAX, AVG等.这些函数和其它函数的根 ...
- Kaldi中的Chain模型
Chain模型的训练流程 链式模型的训练过程是MMI的无网格的版本,从音素级解码图生成HMM,对其使用前向后向算法,获得分母状态后验,通过类似的方式计算分子状态后验,但限于对应于转录的序列. 对于神经 ...
- python的sys.args使用
一.sys 模块 sys是Python的一个「标准库」,也就是官方出的「模块」,是「System」的简写,封装了一些系统的信息和接口. 官方的文档参考:https://docs.python.org/ ...
- Intellij idea安装
1.官网下载 官网: https://www.jetbrains.com/idea/ 旗舰版(涵盖所有功能的)和社区版 2.下载旗舰版 3.创建maven项目 IDE的设置 setting:当前项目的 ...
- Windows下python安装运行
1. 在python官网 https://www.python.org/downloads/windows/ 选择要下载的版本,我下载了最新版本 2. 双击运行 3. naxt 4. install ...
- jQuery源码分析学习--资料收集--更新中
1.逐行分析jQuery源码的奥秘 - 网易云课堂 http://study.163.com/course/courseMain.htm?courseId=465001#/courseDetail? ...
- ffmpeg笔记
1.视频降低质量,减小体积: ffmpeg -i aaa.mp4 -strict -2 -qscale 20 -y outfile.mp4