FTP上传文件无效(创建文件夹正常)

lin358 2014-09-15 09:43:06
原先是Ser-U部署的FTP一切正常,但是因为一些原因现改成win2008自带的IIS部署的FTP,则出现问题:文件夹创建正常,但是文件完全失败,代码不报错,就连空文件都没有
代码如下:
FileInputStream input = new FileInputStream ftpClient.changeWorkingDirectory(stoFtpPath);
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
ftpClient.setSoTimeout(1000*60);
ftpClient.storeFile(sfileName,input);
人工连接FTP的话一切正常
还望大大指教.....
...全文
694 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin358 2014-09-15
  • 打赏
  • 举报
回复
引用 1 楼 losebaby 的回复:
具体的看不出,应该是 ftpClient.storeFile(sfileName,input); 的问题吧。 这个类里怎么操作FileInputStream写入文件的?
这个方法是apache的FTPClient里面的API,功能就是上次文件,具体怎么实现的不大清楚
可乐罐 2014-09-15
  • 打赏
  • 举报
回复
具体的看不出,应该是 ftpClient.storeFile(sfileName,input); 的问题吧。 这个类里怎么操作FileInputStream写入文件的?
开不了口1990 2014-09-15
  • 打赏
  • 举报
回复
我最近用过的一个方法,你参考一下吧
/**
	 * 上传单个文件到FTP服务器
	 * @param path		目录路径
	 * @param filename	目标文件名
	 * @param file		待上传的文件
	 * @param clear		是否删除已上传文件
	 */
	public static boolean ftpUpload(String path,String filename,File file, boolean clear){
		FTPClient ftpClient = null;
		FileInputStream fis = null;
        try {
			ftpClient = ftpConnect();
			if(ftpClient == null){
				log.info("连接FTP失败!");
				return false;
			}
			log.info("paht:" + path);
			for(String p : path.split("\\" + File.separator)){
				if(!ftpClient.changeWorkingDirectory(p)){
					if(!ftpClient.makeDirectory(p)){
						log.info("创建目录失败,没有权限!");
						return false;
					}
					ftpClient.changeWorkingDirectory(p);
				}
			}
			log.info("FTP连接成功");
			
			ftpClient.setBufferSize(1024); 
            ftpClient.setControlEncoding("GBK"); 
            ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); 
            
            fis = new FileInputStream(file);
            if(ftpClient.storeFile(filename, fis)){
        		log.info("上传到FTP成功," + filename);
        	}else{
        		log.info("上传到FTP失败," + filename);
        		return false;
        	}
            return true;
		} catch (Exception e) {
			log.error("上传到FTP异常:", e);
			return false;
		}finally{
			try {
				if(ftpClient != null){
					ftpClient.disconnect();
				}
				if(fis != null){
					fis.close();
				}
				if(clear && file.exists()){
					file.delete();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧