簡體   English   中英

FTP多文件上傳PHP

[英]FTP muliple files upload PHP

我正在嘗試將文件從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,而不是全部上傳到FTP。 我似乎不知道為什么。 我在這里想念什么? 感謝任何幫助。

您收到ftp error回聲的原因是, $upload第一個文件時, $upload變量將具有true值。 然后在代碼末尾退出,該腳本將停止腳本以繼續循環。 請移除exit; 並嘗試。 另請參閱此參考。 這里
另外,請不要在循環中打開和關閉ftp連接,在循環完成時將其關閉,並將所有文件上傳到ftp。

暫無
暫無

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

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