Отправка файлов с использованием cURL в защищенную папку (https://) - PullRequest
0 голосов
/ 14 июля 2010

Проблема заключается в загрузке TXT-файла в защищенную папку (https://www.mydomain.com/myfolder/) с помощью cURL.

У меня есть соответствующие подробности ftp для подключения этой папки. вот мой код, но он не подключается должным образом ...

Может кто-нибудь сообщить, какую ошибку я допустил в этом коде. который возвращает error_no: 7 при загрузке файла

<?
if (isset($_POST['Submit'])) {
    if ($_FILES['upload']['name']!="") 
    {
        $localfile = $_FILES['upload']['tmp_name'];
        $newfile = $_FILES['upload']['name'];
        $ch = curl_init();
        $url = 'ftp://ftp_login:password@ftp.mydomain.com/myfolder/'.$newfile;
        $fp = fopen ($localfile, "r");
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_UPLOAD, 1);
        curl_setopt($ch, CURLOPT_INFILE, $fp);
        curl_setopt($ch, CURLOPT_FTPASCII, 1);
        curl_setopt($ch, CURLOPT_POST, 1 );
        curl_setopt($ch, CURLOPT_POSTFIELDS, $newfile);
        curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

        $result = curl_exec($ch);
        echo curl_error($ch);
        echo $error_no = curl_errno($ch);
        curl_close($ch);
        //echo $result;

        if ($error_no == 0) 
        {
            $error = 'File uploaded succesfully.';
        } 
        else 
        {
            $error = 'File upload error.';
        }
    } 
    else 
    {
        $error = 'Please select a file.';
    }
}
?>

Ответы [ 2 ]

0 голосов
/ 14 июля 2010

Я не знаю, почему вы должны использовать cURL, но PHP имеет свои функции FTP , которые немного облегчат жизнь.

0 голосов
/ 14 июля 2010

Согласно этому списку , код ошибки 7:

CURLE_COULDNT_CONNECT (7)

Failed to connect() to host or proxy. 

Вы уверены, что сервер доступен?Можешь попробовать вручную?

Кроме того, я не совсем понимаю, что ты здесь делаешь.Вы устанавливаете соединение ftp, но добавляете поля POST.Кроме того, ничего из этого не имеет отношения к https.Что именно вы пытаетесь сделать?

...