分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

关于ftp文件上传获取流对象空值问题

发布时间:2023-09-06 01:57责任编辑:苏小强关键词:文件上传

前些天写好的工具类,后来从新测试的时候出现的ftp.storeFileStream获得不到流对象。切出现等待时间的问题。

跟踪了代码,登录没有问题!进入ftp看了一些目录结构和文件。发现文件已经创建,但是里面没有内容。估计就是流对象无法写入内容的原因。

针对这个问题去网上查看了一些资料,再对比一些自己的代码。发现自己在登陆后没有做退出和断开连接处理,加上这些后问题解决了。

下面是代码:

 1 public static boolean putFileToFtp(File file,String newFilePathName){ 2 ????????boolean flag = false; 3 ????????//创建一个ftp客户端 4 ????????FTPClient ftp = getClient(); 5 ?????????try { 6 ?????????????//登录 7 ????????????????ftp.connect(REHOSTNAME, Integer.parseInt(REPORT)); 8 ????????????????flag = ftp.login(REUSERNAME, REPASSWORD); 9 ????????????????if(flag){10 ????????????????????//设置上传目录 11 ????????????????????ftp.enterLocalPassiveMode();12 ????????????????????ftp.setCharset(Charset.forName("UTF-8"));13 ????????????????????ftp.setControlEncoding("UTF-8");14 ??????????????????//设置文件类型(二进制) 15 ????????????????????ftp.setFileType(FTPClient.BINARY_FILE_TYPE);16 ??????????????????//文件流输出17 ????????????????????OutputStream os = ftp.storeFileStream(RETRUMPETHESERVER+"/"+newFilePathName);18 ????????????????????if(os!=null){19 ????????????????????????FileInputStream fis = new FileInputStream(file);20 ????????????????????????byte[] b = new byte[1024];21 ????????????????????????int len = 0;22 ????????????????????????while ((len = fis.read(b)) != -1) {23 ????????????????????????????os.write(b,0,len);24 ????????????????????????}25 ????????????????????????fis.close();26 ????????????????????????os.close();27 ????????????????????????ftp.logout();28 ????????????????????????flag = true;29 ????????????????????}else{30 ????????????????????????ftp.logout();31 ????????????????????????return false;32 ????????????????????}33 ????????????????}else{34 ????????????????????ftp.disconnect();35 ????????????????????return false;36 ????????????????}37 ????????????????38 ????????????????39 ????????????} catch (IOException e) {40 ????????????????e.printStackTrace();41 ????????????????return false;42 ????????????} finally { 43 ????????????????try { 44 ????????????????????ftp.disconnect(); 45 ????????????????} catch (IOException e) { 46 ????????????????????e.printStackTrace(); 47 ????????????????????throw new RuntimeException("关闭FTP连接发生异常!", e); 48 ????????????????} 49 ????????????}50 ?????????return flag; ?51 ????}

以上是代码,可能考虑的不够全面。请谨慎采用!

关于ftp文件上传获取流对象空值问题

原文地址:https://www.cnblogs.com/lu-shuangbk/p/9128129.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved