FTP загрузка файла на удаленный сервер с помощью CURL, а PHP загружает пустой файл - PullRequest
6 голосов
/ 28 марта 2012

Я пытаюсь загрузить файл на удаленный сервер, но похоже, что исходный файл ничего не делает. Все, что я получаю, это пустой файл на сервере. Мой код такой:

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

?>

1 Ответ

23 голосов
/ 29 марта 2012

После 2 дней удара головой об клавиатуру ... наконец-то я это сделал .. Вот как:

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

Вот источник , откуда я нашелрешение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...