簡體   English   中英

Java-在FTP服務器上存儲文件失敗

[英]Java - Storing File on FTP Server fails

我正在嘗試將byteArrayInputStream作為文件存儲在FTP服務器上 我已經可以連接到服務器並更改工作路徑,但是觸發將流作為文件存儲在服務器上的方法總是返回false

我正在使用Apache FTPClient。

有人可以給我提示我的錯誤可能在哪里!?

這里的代碼:

    String filename = "xyz.xml"

    // connection returns true
    connectToFtpServer(ftpHost, ftpUser, ftpPassword, exportDirectory);

    // byteArray is not void
    ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteArray);

    try {
        // change returns true
        result = ftpClient.changeWorkingDirectory(exportDirectory);

        // storing the file returns false
        result = ftpClient.storeFile(filename, byteArrayInputStream);

        byteArrayInputStream.close();
        ftpClient.logout();
    } catch (...) {
        ...
    } finally {
        // disconnect returns true
        disconnectFromFtpServer();
    }

由於用戶組無效,實際上是一個權限問題。 將用戶添加到用戶組后,我可以再次存儲文件。

我不相信這是您的代碼。 這是另一個看起來與kodejava非常相似的示例:package org.kodejava.example.commons.net;

import org.apache.commons.net.ftp.FTPClient;
import java.io.FileInputStream;
import java.io.IOException;

public class FileUploadDemo {
public static void main(String[] args) {
    FTPClient client = new FTPClient();
    FileInputStream fis = null;

    try {
        client.connect("ftp.domain.com");
        client.login("admin", "secret");

        //
        // Create an InputStream of the file to be uploaded
        //
        String filename = "Touch.dat";
        fis = new FileInputStream(filename);

        //
        // Store file to server
        //
        client.storeFile(filename, fis);
        client.logout();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (fis != null) {
                fis.close();
            }
            client.disconnect();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
 }
 }

我同意這是文件權限。 目前還沒有辦法在Java本身中更改權限,但是還有其他解決方案。 請參見此線程: 如何以編程方式更改文件權限?

HTH,

詹姆士

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM