2012-03-28 14 views
4

遠くのサーバーにファイルをアップロードしようとしていますが、ソースファイルのようには見えません。私が得るのは、サーバー上の空白のファイルです。最終的に私はここ.. をやった...キーボードに対して私の頭を叩いての2日後CURLを使用してFTPにファイルをアップロードし、PHPが空のファイルをアップロードします。

<?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

エコーcurl_errno($ ch);エラーがあるかどうかを確認しようとしました – safarov

+0

試してみて0を得ました。 – Dudipoli

+0

SERVERPATHの形式は何ですか?ホスト名を変更するだけですが、その他のもの、句読点などを残してください。 – dldnh

答えて

17

方法をされています:どこからここに

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

は、sourceある 私のコードはこれです私は解決策を見つけた

+0

こんにちは、私は+1をしています。このクローンなしでCURLOPT_UPLOAD = 1が本当にサーバー上の空のファイルをアップロードしています。 – Jimmmy

関連する問題