2017-02-22 1 views
0

Ich versuche, Dateien über PHP auf FTP hochzuladen, und es funktioniert ... irgendwie. Bitte schauen Sie sich meinen Code an.PHP mehrere Dateien auf FTP hochladen

 $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; 

Dieses Skript funktioniert tatsächlich, aber nur mit einer Datei. Wenn ich mehrere Dateien über mein Formular hochlade, wird nur eine Datei hochgeladen. Ich möchte, dass alle Dateien aus meinem Formular hochgeladen werden. Wie kann ich das machen?

+0

eine Schleife in dem PHP-Code zu setzen. – Barmar

+0

Wie? Ich bin wirklich neu in PHP. @Barmar – zorensen

+0

Mit einer 'foreach()' Anweisung, um die Elemente eines Arrays zu durchlaufen. – Barmar

Antwort

2

Vielleicht möchten Sie in Schleifen suchen. Eine Lösung könnte eine Schleife sein durch alle Dateien, die Sie von Ihrem Formular erhalten mit einem foreach loop, z.B .:

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

Sie werden auch die Logik in Ihrem HTML-Upload-Formular anpassen. Sie müssen mehrere $_FILES['files'], z. im Format $_FILES['files'][0], $_FILES['files'][1], ..., $_FILES['files'][n]

Ich hoffe, das Ihnen irgendeine Richtung geben :-)

+1

Ich gebe dir eine Chance! Vielen Dank. Ich bin neu in PHP, aber ich lerne die Seile! – zorensen

+0

Ich glaube ehrlich, Sie haben hier eine gute Antwort @jrn. Allerdings bin ich neu und ich kämpfe darum, dies zu implementieren und es zum Laufen zu bringen. Mit dem Anpassen des HTML-Upload-Formulars meinen Sie beispielsweise ? – zorensen

+0

Versuchen Sie etwas wie dieses ''. Stellen Sie sicher, dass Sie die '[]' hinter dem Namen der Eingabe haben. – jrn