java使用ftp上传文件出现false()

2023-05-16

http://blog.csdn.net/beyondlpf/article/details/9343781这是我解决的的原文地址解析原因


在项目中使用commons-net.jar实现FTP文件的下载,在windows xp上运行正常,但是放到linux上,却出现问题,程序运行到

FTPClient.listFiles()或者FTPClient.retrieveFile()方法时,就停止在那里,什么反应都没有,出现假死状态。google一把,发现很多人也出现了此类问题,最终在一个帖子里找到了解决办法。在调用这两个方法之前,调用FTPClient.enterLocalPassiveMode();这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。为什么要这样做呢,因为ftp server可能每次开启不同的端口来传输数据,但是在linux上或者其他服务器上面,由于安全限制,可能某些端口没有开启,所以就出现阻塞。OK,问题解决。


public void testFtpClient() {
			//穿件一個ftp客戶對象
			FTPClient ftpClient=new FTPClient();
			FileInputStream inputStream = null;
			try {
				//创建ftp链接
				ftpClient.connect("192.168.139.128", 21);
				//登陆ftp服务器  用户名 密码
				ftpClient.login("ftpuser", "a");
				//读取本地文件
				inputStream=new FileInputStream(new File("F:\\照片\\1.jpg"));
				//设置上传路径
				ftpClient.changeWorkingDirectory("/home/ftpuser/www/image/");
				//修改上传文件格式
				ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
				ftpClient.setControlEncoding("UTF-8"); 
				 ftpClient.enterLocalPassiveMode();
				//上传文件   上传文件名  上传文档的inputStream
				System.out.println(ftpClient.storeFile(new String("hello.jpg".getBytes("UTF-8"),"iso-8859-1"), inputStream));
			} catch (IOException e) {
				e.printStackTrace();
			}finally{
				try {
					ftpClient.logout();
				} catch (IOException e) {
					e.printStackTrace();
				}
					if(inputStream!=null){
						try {
							inputStream.close();
						} catch (IOException e) {
							e.printStackTrace();
						}
					}
				
			}
			
			
		
	}	
以上是我修改后的代码 测试成功的

我的环境是在一个虚拟机上搭建一个ftp图片服务器  用来保存我所有的文件等

之前没有这句话就一直卡死在上传那句代码  但是并没有报错,假死几十秒之后就返回了false  我估计是链接超时,因为没有开方端口。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java使用ftp上传文件出现false() 的相关文章

随机推荐

  • kafka 多消费者实现

    kafka官网 xff1a http kafka apache org quickstart 目录 kafka简单介绍 xff1a 实现方式 1 xff1a kafka分区 2 实现结果 3 xff1a kafka的consumer代码 4
  • ipa重签名的四种方式

    文章为学习hank的视频笔记 一 开发者调试安装app到手机的签名过程 1 Mac电脑生成公钥M和私钥M 2 公钥M传给苹果服务器 xff0c 苹果服务器的私钥A对公钥M进行加密生成证书返回给xcode 3 Xcode下载profile等描
  • IOS——使用ScrollView和PageController实现引导页分页效果

    如标题所说 xff0c 使用的是ScrollView和PageControlle两个控件共同达到该效果 首先 xff0c 使用storyboard将ScrollView和PageControlle拖入 xff0c 要注意的是 xff0c P
  • 寻找第一个出现次数最少的字符

    同理寻找第一个出现次数最少的字符 xff0c 一次循环的还没想好 span class hljs keyword import span java util HashMap span class hljs keyword import sp
  • 富文本

    ios项目中经常需要显示一些带有特殊样式的文本 xff0c 比如说带有下划线 删除线 斜体 空心字体 背景色 阴影以及图文混排 xff08 一种文字中夹杂图片的显示效果 xff09 通常想要实现这些效果要使用到iOS的Foundation框
  • 【设计模式】linux中利用信号量演示生产者与消费者模型

    1 简介 linux sem 信号量是一种特殊的变量 xff0c 访问具有原子性 xff0c 用于解决进程或线程间共享资源引发的同步问题 用户态进程对 sem 信号量可以有以下两种操作 xff1a 等待信号量 xff1a 当信号量值为 0
  • ftp与sftp上传工具类

    1 ftp上传工具类 package com zhjg utils import java io IOException import java io InputStream import java io OutputStream impo
  • 日本推出可实时监测地震烈度iPhone应用软件

    这个 xff0c 实在 xff01 据日本媒体报道 xff0c 日本近日在iPhone及iPad的平台上推出一款名为 i震度 的防灾害应用软件 该应用软件由专业研发地震检测仪器的白山工业公司开发完成 xff0c 具有随时随地监测地震烈度的功
  • Android 文件管理器 文件缩略图标显示流程

    前言 本篇文章是基于Android 11 文件管理器 xff08 com android documentsui xff09 的源码 xff0c 在实际项目中定位加载图片和视频文件显示缩略图的相关问题时 xff0c 做的总结 xff0c 文
  • Android 显示 指纹/人脸 身份验证对话框

    1 前言 为了增加用户的隐私和安全 xff0c 需保护您的应用中的敏感信息或付费内容 xff0c 一种方法是请求生物识别身份验证 xff0c 例如使用人脸识别或指纹识别 本篇文章介绍了如何在您的应用中支持生物识别登录流程 2 声明应用支持的
  • 截取图片部分

  • Android PackageManagerService总结(五) APK卸载流程

    一 概述 PackageManagerService 简称PKMS xff0c 是Android系统中核心服务之一 xff0c 管理着所有与package相关的工作 xff0c 常见的比如安装 卸载应用 信息查询等工作 主要完成以下核心功能
  • ButterKnife内存泄漏问题

    在butterKnife自动生成的代码 xff08 XXX ViewBinding xff09 中 xff0c 里面有这样一段代码 xff1a view setOnClickListener new DebouncingOnClickLis
  • PPTV面试算法思考-最长对称子字符串

    题目 最近在微信公众号里看看到了一个PPTV的面试算法题 xff0c 感觉难度适中 xff0c 想试下 题目的内容为求一个字符串的最长对称子字符串 如 xff1a 输入 输出 abba 4 abad 3 acccbaa 3 我的算法1 自己
  • C++

    由于见到论坛上不少找书的 xff0c 于是就稍稍汇总总结了一下 xff0c 作为本人即将推出的 C 43 43 资源大汇 系列文章的引子 本文只是初稿 xff0c 其中有不少的纰漏 笔误 打误 xff08 打字错误 xff09 希望各位纠正
  • pyspark MLlib基本使用

    MLib 基本概念 MLib其实就是将数据以RDD的形式进行表示 xff0c 在分布式数据集上调用各种算法 使用方法 MLlib中包含能够在集群上运行良好的并行算法 xff0c 如kmeans 分布式RF 交替最小二乘等 xff0c 这能够
  • 一个启动模式为singleTop的activity,如果再次启动会发生什么? 面试官想问的是 onNewIntent()

    Activity有一个 onNewIntent Intent intent 回调方法 xff0c 该方法我们几乎很少使用 xff0c 导致已经将其忽略掉 该方法的官方解释如下 xff1a This is called for activit
  • c++ 中的重载全局new,delete

    最近做一个小项目 xff0c 对c 43 43 又有很多新的理解 实在不的不让人发出感叹 xff0c c 43 43 太强大了 xff0c 绝对不是一朝一夕就可以领悟她的内涵的 首先我们要清楚 xff0c 为什么我们要重载new xff0c
  • 解决AndroidStudio报错问题:Missing essential plugin

    前言 xff1a 今天下载了Android4 2 0Canary14最新版 xff0c 打开时突然报了一个错 xff0c 1 错误现象 xff1a AndroidStudio 无法正常打开 xff0c 打开之后弹出报错窗口显示 xff1a
  • java使用ftp上传文件出现false()

    http blog csdn net beyondlpf article details 9343781这是我解决的的原文地址解析原因 在项目中使用commons net jar实现FTP文件的下载 xff0c 在windows xp上运行