【问题标题】:Apache commons java FTP upload issueApache commons java FTP上传问题
【发布时间】:2014-08-09 06:55:06
【问题描述】:

我知道 ftp 上传有多种格式。(二进制 ascii 等...)我正在编写一个简单的应用程序来在我的计算机和树莓派之间传输文件,我想知道是否有一种简单的方法来确保上传是正确的类型。此外,我一直在努力让 .jar 文件的上传成功,但没有成功。我相信这与已经提到的问题相同。这是代码

private void uploadActionPerformed(java.awt.event.ActionEvent evt) {                                       
        FileInputStream in = null;
         int returnVal = filechooser.showOpenDialog(this);
    if (returnVal == JFileChooser.APPROVE_OPTION) {
        File file = filechooser.getSelectedFile();
        try{
            FTPClient f = new FTPClient();

            f.connect("********");
            f.login("*******", "********");
            in = new FileInputStream(file.getAbsolutePath());
            f.storeFile("public_html/GEdropbox/" + file.getName(),in);
            in.close();
            f.disconnect();
        }catch(IOException e){
            System.out.println("not working");
        }
    } else {
        System.out.println("File access cancelled by user.");
    }
}                                 

【问题讨论】:

  • 捕获异常时,显示它的stackTrace。

标签: java apache ftp apache-commons apache-commons-net


【解决方案1】:

设置二进制传输模式:

f.connect("********");
f.login("*******", "********");
f.setFileType(FTP.BINARY_FILE_TYPE);

【讨论】:

  • 解决了 jar 问题,但是如何让代码区分类型?
  • 您不必这样做,除非两个系统都使用相同的编码。如果您使用二进制传输,则文件按原样传递。当以 ASCII 传输时,客户端/服务器必须将 ASCII 表转换为它自己的代码页。在这里阅读更多:serv-u.com/newsletter/NewsL2008-03-18.asp
  • 谢谢 我确实需要告诉两个系统使用相同的编码,但我的问题已解决。也感谢文章的链接。我通读了。
猜你喜欢
  • 2011-10-02
  • 2012-03-20
  • 2013-06-17
  • 2012-12-11
  • 1970-01-01
  • 2012-01-25
  • 1970-01-01
  • 2013-02-24
  • 2011-03-27
相关资源
最近更新 更多