2012-03-28 3 views
4

Ich versuche, eine Datei auf einen entfernten Server hochzuladen, aber sieht aus wie die Quelldatei nichts tut. Alles, was ich bekomme, ist eine leere Datei auf dem Server. Mein Code ist dies:FTP-Upload-Datei auf entfernten Server mit CURL und PHP lädt eine leere Datei

<?php 

    $c = curl_init(); 
    $file = "\PATHTOFILE\file.txt"; 
    $fp = fopen($file, "r"); 

    curl_setopt($c, CURLOPT_URL, "SERVERPATH/file.txt"); 
    curl_setopt($c, CURLOPT_USERPWD, "USER:PASSWORD"); 
    curl_setopt($c, CURLOPT_UPLOAD, 1); 
    curl_setopt($c, CURLOPT_INFILE, $fp); 
    curl_setopt($c, CURLOPT_INFILESIZE, filesize($file)); 

    curl_exec($c); 
     echo "Success"; 
    curl_close($c); 
    fclose($fp); 

?> 
+0

versuchen Sie 'echo curl_errno ($ ch);' zu sehen, ob es einen Fehler gibt – safarov

+0

Versuchte es und bekam 0, was bedeutet es jetzt? – Dudipoli

+0

Welches Format hat SERVERPATH? Dh ändern Sie einfach den Hostnamen, aber lassen Sie alle anderen Sachen, Interpunktion usw. – dldnh

Antwort

17

Nach 2 Tagen meinen Kopf gegen die Tastatur hämmern .. endlich ich es tat .. Hier ist, wie:

<?php 

    if (isset($_POST['Submit'])) { 
if (!empty($_FILES['upload']['name'])) { 
    $ch = curl_init(); 
    $localfile = $_FILES['upload']['tmp_name']; 
    $fp = fopen($localfile, 'r'); 
    curl_setopt($ch, CURLOPT_URL, 'ftp://domain.com/'.$_FILES['upload']['name']); 
    curl_setopt($ch, CURLOPT_USERPWD, "user:pass"); 
    curl_setopt($ch, CURLOPT_UPLOAD, 1); 
    curl_setopt($ch, CURLOPT_INFILE, $fp); 
    curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile)); 
    curl_exec ($ch); 
    $error_no = curl_errno($ch); 
    curl_close ($ch); 
     if ($error_no == 0) { 
      $error = 'File uploaded succesfully.'; 
     } else { 
      $error = 'File upload error.'; 
     } 
} else { 
     $error = 'Please select a file.'; 
} 
} 
    echo $error; 
?> 

Hier die source ist, von wo aus Ich fand die Lösung

+0

Hallo, gebe ich +1, weil CURLOPT_UPLOAD = 1 ohne diese curlopt es wirklich lädt leere Datei auf dem Server, ich habe versucht, zu nextcloud uploaden – Jimmmy