【问题标题】:FTP muliple files upload PHPFTP多个文件上传PHP
【发布时间】:2017-07-13 20:32:55
【问题描述】:

我正在尝试将文件从 PHP 上传到 FTP。它确实有效,但不适用于多个文件。这是我的代码;

        for($i = 0; $i < count($data['data']['metas']); $i++)
    {
        echo "<li>".$data['data']['metas'][$i]["name"]."</li>";
        echo "<li>".$data['data']['metas'][$i]["file"]."</li>";
        echo "<li>".$data['data']['metas'][$i]["size2"]."</li>";
    }

这确实有效。它将返回我上传的文件的数据,如下所示;

- FILENAME01.EXT
- upload/FILENAME01.EXT
- 198.96 KB
- FILENAME02.EXT
- upload/FILENAME01.EXT
- 93.77 KB
- FILENAME03.EXT
- upload/FILENAME03.EXT
- 94.59 KB

到目前为止,一切都很好。现在我正在添加上传到 FTP 代码,这就是我所拥有的(直接在上面的代码下);

    for($i = 0; $i < count($data['data']['metas']); $i++)
    {
    $host = "ftp.domain.com";
    $username = "myuser";
    $password = "mupass";
    $local_file = $data['data']['metas'][$i]["file"];
    $remote_file = $data['data']['metas'][$i]["name"];

    $con = ftp_connect($host, 21) or die("Cant connect");
    $log = ftp_login($con, $username, $password) or die("Wrong credentials");

    ftp_pasv($con, true);

    $upload = ftp_put($con, $remote_file, $local_file, FTP_BINARY);
    if($upload) echo 'ftp error';
    ftp_close($con);

    echo 'ftp success';
    exit;
    }

这将在我上传的文件信息下的一行返回“ftp errorftp success”。只有我上传的第一个文件会上传到 FTP,而不是全部。我似乎无法弄清楚为什么。我在这里想念什么?感谢任何帮助。

【问题讨论】:

    标签: php file-upload ftp


    【解决方案1】:

    您收到ftp error 的回声的原因是$upload 变量在第一个文件上传时将具有真值。然后你在代码的末尾退出,这将停止脚本继续循环。请删除exit; 并尝试。 另请参阅此参考。 Here
    另外请不要在循环内打开和关闭ftp连接,等循环完成后再关闭,然后将所有文件上传到ftp。

    【讨论】:

    • 很棒的提示!我已经尝试了您现在所说的内容,现在一切正常。感谢您的提示!
    猜你喜欢
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    相关资源
    最近更新 更多