问题描述
原先是Ser-U部署的FTP一切正常,但是因为一些原因现改成win2008自带的IIS部署的FTP,则出现问题:文件夹创建正常,但是文件完全失败,代码不报错,就连空文件都没有代码如下:FileInputStreaminput=newFileInputStreamftpClient.changeWorkingDirectory(stoFtpPath);ftpClient.setFileType(FTP.BINARY_FILE_TYPE);ftpClient.setSoTimeout(1000*60);ftpClient.storeFile(sfileName,input);人工连接FTP的话一切正常还望大大指教.....
解决方案
解决方案二:
具体的看不出,应该是ftpClient.storeFile(sfileName,input);的问题吧。这个类里怎么操作FileInputStream写入文件的?
解决方案三:
引用1楼losebaby的回复:
具体的看不出,应该是ftpClient.storeFile(sfileName,input);的问题吧。这个类里怎么操作FileInputStream写入文件的?
这个方法是apache的FTPClient里面的API,功能就是上次文件,具体怎么实现的不大清楚
解决方案四:
我最近用过的一个方法,你参考一下吧/***上传单个文件到FTP服务器*@parampath目录路径*@paramfilename目标文件名*@paramfile待上传的文件*@paramclear是否删除已上传文件*/publicstaticbooleanftpUpload(Stringpath,Stringfilename,Filefile,booleanclear){FTPClientftpClient=null;FileInputStreamfis=null;try{ftpClient=ftpConnect();if(ftpClient==null){log.info("连接FTP失败!");returnfalse;}log.info("paht:"+path);for(Stringp:path.split("\"+File.separator)){if(!ftpClient.changeWorkingDirectory(p)){if(!ftpClient.makeDirectory(p)){log.info("创建目录失败,没有权限!");returnfalse;}ftpClient.changeWorkingDirectory(p);}}log.info("FTP连接成功");ftpClient.setBufferSize(1024);ftpClient.setControlEncoding("GBK");ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);fis=newFileInputStream(file);if(ftpClient.storeFile(filename,fis)){log.info("上传到FTP成功,"+filename);}else{log.info("上传到FTP失败,"+filename);returnfalse;}returntrue;}catch(Exceptione){log.error("上传到FTP异常:",e);returnfalse;}finally{try{if(ftpClient!=null){ftpClient.disconnect();}if(fis!=null){fis.close();}if(clear&&file.exists()){file.delete();}}catch(IOExceptione){e.printStackTrace();}}}