java代码 经已连接成功linux ftp服务器,但是就是上传不了文件

java代码 经已连接成功linux ftp服务器,但是就是上传不了文件,第1张

你是想从服务器下载文件吧?那应该用retrieveFile(String remote, OutputStream local),而不是storefile啊,自己看看API

http://commonsapacheorg/proper/commons-net/apidocs/org/apache/commons/net/ftp/FTPClienthtml

flag = ftpClientretrieveFile(remoteFileName, os); os为远程文件的outputStream |remoteFileName为A服务器上文件名

flag = ftpClientstoreFile(remoteFileName, is);is为远程文件的inputSteam |remoteFileName为C服务器上文件名

由此可见这个地方还是相当纠结的,必须要用B服务器做个中转,利用B服务器上文件的OutputStream 和InputStream 所以如果文件不大的话当文件经B上传到C服务器后立即把B红的临时文件删掉就好了

当然你也可以试试

storeFileStream(String remote);来获得C上文件的OutputStream 在利用 ftpClientretrieveFile(remoteFileName, os);来上传,但是这种方法我没试过,你可以尝试一下,如果成功了请告诉我结果,谢谢

public void ftpJdomFile(String dir) throws FileNotFoundException, IOException{

//创立根节点

// 下面这个方法是列出指定目录下的所有文件和文件夹

List dirslist=ArraysasList(new File(dir)listFiles());

for (Iterator i = dirslistiterator(); ihasNext();) {

// Systemoutprintln(inext()); // line 1

String s=inext()toString();

if (new File(s)isFile()) {

Systemoutprintln(s+"-文件");

}

if (new File(s)isDirectory()) {

Systemoutprintln(s+"++++++++文件夹");

ftpJdomFile(s);

}

}

}

你有FTPClient就比较好办,假如你的两台FTP服务器分别为fs1和fs2

在本地开发代码思路如下:

通过FTPClient连接上fs1,然后下载(可以循环批量下载)到本地服务器,保存到一个临时目录。

下载完成后,FTPClient断开与fs1的连接,记得必须logout。

本地服务器通过FileInputStream将刚下载到临时目录的文件读进来,得到一个List<File>集合。

通过FTPClient连接上fs2,循环List<File>集合,将文件上传至fs2的特定目录,然后清空临时目录,上传完毕后,断开fs2的连接,同样必须logout。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » java代码 经已连接成功linux ftp服务器,但是就是上传不了文件

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情