【问题标题】:Unable to uploading .class file on server using FTP java无法使用 FTP java 在服务器上上传 .class 文件
【发布时间】:2014-04-16 12:14:41
【问题描述】:

我想使用 FTP 在服务器上上传一个 .class 文件 (ABC.class)。

试过了: 1>

public boolean uploadFileOnFTPServer(File file, String uploadToPath) {
    boolean isUploaded = false;
    try {
        FileInputStream bis = new FileInputStream(file);
        if (connectToFTPServer()) {
            if (ftpClient.login(userName, password)) {
                System.out.println("Logged in to server. Username: " + userName);
                if (ftpClient.changeWorkingDirectory(uploadToPath)) {
                    System.out.println("Navigated to path " + uploadToPath);

                    if (ftpClient.storeFile(file.getName(), bis)) {
                        bis.close();
                        System.out.println("File " + file.getName() + " uploaded to server.");
                        isUploaded = true;
                    }
                } 
    } catch (Exception e) {
        strRemarks = "Exception reported: Unable to upload file. Error Details: " + e.toString();
        System.out.println(strRemarks);
        e.printStackTrace();
    } finally {
        disconnectFTPServer();
    }
    return isUploaded;
}

也试过了:

2>

InputStream bis = new FileInputStream(file);

3>

BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));

文件正在上传到服务器,但文件已损坏或内容未正确存储在文件中。

任何人都可以帮忙。

【问题讨论】:

  • 您正在调用方法并引用此处未定义的变量。在不知道台下发生了什么的情况下,我们应该如何提供帮助?但最可能的问题是您以 ASCII(文本)模式发送文件;您需要使用 IMAGE(二进制)模式。
  • 很抱歉给您带来不便。 connectToFTPServer() - function to connect to server ftpClient - FTPClient ftpClient = null; disconnectFTPServer() - function to get disconnected from server I tried: ftpClient.setFileType(FTPClient.ASCII_FILE_TYPE); 没用
  • 将其设置为非 ASCII 文件类型! ASCII类型是错误的类型,但它是默认的!
  • ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); 不工作:(
  • 尝试确定是如何损坏的。尺寸合适吗?某些字节值是一致替换的,还是只是垃圾?在 Linux 上使用“od -t x2”命令(例如)检查良好和损坏的类文件的内容。

标签: java ftp ftp-server


【解决方案1】:

这行得通:

在连接到服务器之后但在传输文件之前添加 setFileType()。

                    ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);                 
                    String remoteFileName = file.getName();
                    if (ftpClient.storeFile(remoteFileName, inputStream)) {
                        inputStream.close();
                        System.out.println("File " + file.getName() + " uploaded to server.");
                        isUploaded = true;
                    }

非常感谢 EJP 帮我解决这个问题 :)

【讨论】:

    猜你喜欢
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 2012-08-06
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多