2012-06-02 27 views
1

余米使用此代码,并尝试从服务器下载。这一种png格式PIC是代码如何使用FTPClient从FTP下载图像?

import java.awt.image.BufferedImage; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 
import javax.imageio.ImageIO; 
import org.apache.commons.net.ftp.FTPClient; 
public class NetTest { 
    public static void main(String[] args){ 
    FTPClient client = new FTPClient(); 
    OutputStream outStream; 
    try { 

     client.connect("server"); 
     client.login("[email protected]", "pass"); 

     String remoteFile = "Pages/page0001.png"; 
     outStream = new FileOutputStream("C:\\asd.png"); 
     client.retrieveFile(remoteFile, outStream); 

    } catch(IOException ioe) { 
     ioe.printStackTrace(); 
     System.out.println("Error communicating with FTP server."); 
    } finally { 
     try { 
     client.disconnect(); 
     } catch (IOException e) { 
     System.out.println("Problem disconnecting from FTP server"); 
     } 
    } 

    } 
} 

这段代码给了我没有错误,但是当我打开图像它表明我无效图像。

+0

下载图像的大小如何?它有效吗? –

+0

下载的大小几乎相等。 –

+0

如果文件大小很小打开并将检索到的文件看作文本 –

回答

0

您既没有刷新输出流,也没有在finally块中关闭。试试看。

2

因为FTPClient默认使用TEXT_FILE_TYPE你被损坏了形象。因此,您必须将文件类型设置为二进制文件,如下所示:

client.setFileType(FTP.BINARY_FILE_TYPE);