2017-02-22 5 views
0

私はPHPを介してFTPにファイルをアップロードしようとしています。私のコードを見てください。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; 

このスクリプトは実際には動作しますが、1つのファイルのみで動作します。フォームから複数のファイルをアップロードしている場合は、1つのファイルしかアップロードされません。私は自分のフォームからすべてのファイルをアップロードしたい。どうやってやるの?

+0

:-)あなたにいくつかの方向性を与えることを願っています。 – Barmar

+0

どのように?私はPHPが本当に初めてです。 @Barmar – zorensen

+0

配列の要素をループする 'foreach()'ステートメントを使用します。 – Barmar

答えて

2

ループを調べるとよいでしょう。一つの解決策は、例えば、あなたがforeach loopとあなたのフォームから取得したすべてのファイルをループする可能性があり:

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

また、あなたのHTMLアップロードフォームにロジックを調整する必要があります。 $_FILES['files']などの複数のアカウントを設定する必要があります。 $_FILES['files'][0]$_FILES['files'][1]の形式で、...、$_FILES['files'][n]

私は、これはPHPコードでループを入れ

+1

私はこれを撃つでしょう!ありがとう。私はPHPで新しいですが、私はロープを学んでいます! – zorensen

+0

正直言って、あなたはここで私のために良い答えがあると信じています。しかし、私はこれに新しいので、私はこれを実装し、それを動作させるのに苦労しています。 htmlアップロードフォームを調整すると、例えばのようになりますか? – zorensen

+0

このようなものを試してみてください。 '入力名の後ろに '[]'があることを確認してください。 – jrn

関連する問題