2012-01-26 15 views
1

私はこのcurlスクリプトを使用して、FTPでユーザーが選択したファイルをアップロードしようとしています。ファイルをサーバーにアップロードしますが、それらはすべて空白です。なぜこうなった?CURLがFTPで空のファイルをアップロード

if (!empty($_FILES['userfile']['name'])) { 
    $ch = curl_init(); 
    $localfile = $_FILES['upload']['tmp_name']; 
    $fp = fopen($localfile, 'r'); 
    curl_setopt($ch, CURLOPT_URL, 'ftp-addy-here'.$_FILES['userfile']['name']); 
    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; 
+1

関連性がないため、html5タグが削除されました。 –

答えて

4

3行目、今それは言う:

$localfile = $_FILES['upload']['tmp_name'];

変更もアップロードが働いていたことを確認するために、100%確実な方法は、コード/定数がここに記述されてい

if ($_FILES['userfile']['error'] === UPLOAD_ERR_OK) { 
    ... ftp stuff ... 
} else { 
    die("Upload failed with error code: {$_FILES['userfile']['error']}"); 
} 

です〜へ:

$localfile = $_FILES['userfile']['tmp_name'];

+0

まだ動作しませんでした – lodkkx

1

最初のファイルのアップロードが成功したかどうかを確認していません。リモートファイル名の有無を確認すると、ではなく、がアップロードされたことを示します。 http://php.net/manual/en/features.file-upload.errors.php

+1

これは正解ではないと思われますが、それでも有効な点です – Basic

関連する問題