【问题标题】:PHP upload multiple files to FTPPHP将多个文件上传到FTP
【发布时间】:2017-07-13 01:56:32
【问题描述】:

我正在尝试通过 PHP 将文件上传到 FTP,它可以工作......有点。请看我的代码;

        $filename = $_FILES['files']['name'];
            $host = "ftp.mydomain.com";
            $username = "myusername";
            $password = "mypassword";
            $local_file = 'upload/'.$filename;
            $remote_file = $filename;

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

            ftp_pasv($con, true);

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

            echo 'Success';
            exit;

这个脚本实际上可以工作,但只有一个文件。如果我通过表单上传多个文件,它只会上传一个文件。我希望上传表单中的所有文件。我该怎么做?

【问题讨论】:

  • 在 PHP 代码中放一个循环。
  • 怎么样?我真的是 PHP 新手。 @Barmar
  • 使用foreach() 语句循环遍历数组的元素。
  • 我有这段代码来回显所有上传的文件,但我不知道如何将它实现到 FTP 脚本中以上传所有文件 @Barmar ; for($i = 0; $i ".$data['data']['metas'][ $i]["姓名"].""; }

标签: php file upload ftp


【解决方案1】:

您可能想研究循环。一种解决方案可能是使用foreach loop 遍历从表单中获取的所有文件,例如:

foreach($_FILES['files'] as $file){
    // your upload logic here
}

您还必须调整 html 上传表单中的逻辑。您必须考虑多个$_FILES['files'],例如格式为$_FILES['files'][0],$_FILES['files'][1],...,$_FILES['files'][n]

我希望这会给你一些方向:-)

【讨论】:

  • 我会试一试的!谢谢。我是 PHP 新手,但我正在学习!
  • 我真的相信你在这里有一个很好的答案@jrn。但是,我对此并不陌生,我正在努力实现这一点并让它发挥作用。通过调整html上传表单,例如 ?
  • 试试这样的<input name="upload[]" type="file" multiple="multiple" />。确保输入名称后有[]
  • 您可能还想查看this post :-)
  • 这很有帮助,@jrn。经过一整天试图弄清楚这一点,我的大脑被烤熟了。经过一个良好的睡眠和你的提示,我把这一切都解决了。感谢您的宝贵时间!
猜你喜欢
  • 2017-07-13
  • 1970-01-01
  • 1970-01-01
  • 2019-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-15
相关资源
最近更新 更多