【问题标题】:Cannot upload multiple files to ftp from Android device无法从 Android 设备上传多个文件到 ftp
【发布时间】:2014-05-27 08:59:54
【问题描述】:

我正在使用this 库连接到我的 FTP 服务器,效果很好。如果我想将文件上传到我的 FTP,我正在使用下面的代码,它也很好用。

FileInputStream srcFileStream = new FileInputStream(mFile);
// change working directory to the destination directory
if (ftpChangeDirectory(desDirectory)) {
    status = mFTPClient.storeFile(mFile.getName(), srcFileStream);
} else {
    ftpMakeDirectory(desDirectory);
    if (ftpChangeDirectory(desDirectory))
        status = mFTPClient.storeFile(mFile.getName(), srcFileStream);
}
srcFileStream.close();

想到了一个问题。如果我想将多个文件上传到我的 FTP,并且我把它放在一个循环中,它只会上传第一个,然后停止,使用以下代码:

for(ImageItem mItem : mItems) {
    Log.d("test", "start" + mItems.indexOf(mItem));
    FileInputStream srcFileStream = new FileInputStream(mItem.getImageFile());

    // change working directory to the destination directory
    if (ftpChangeDirectory(desDirectory)) {
        status = mFTPClient.storeFile(mItem.getImageFile().getName(), srcFileStream);
    } else {
        ftpMakeDirectory(desDirectory);
        if(ftpChangeDirectory(desDirectory))
           status = mFTPClient.storeFile(mItem.getImageFile().getName(), srcFileStream);
    }
    srcFileStream.close();
}

有谁知道应该怎么做? 非常感谢所有帮助! 提前致谢, 曼斯

【问题讨论】:

  • 看起来您正在更改您上传的每个文件的目标目录。尝试不使用它。

标签: android ftp


【解决方案1】:

这个 ftp 库是异步工作的,所以你不能这样做。它只发送第一个,因为其他人会发现流忙的状态。您应该使用 AsyncTask 并在 doInBackground(String... args) 函数中插入“for”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-22
    • 2012-07-06
    • 2023-01-14
    • 1970-01-01
    • 2013-04-26
    • 2017-07-13
    • 1970-01-01
    相关资源
    最近更新 更多