2010-07-14 10 views
0

Le problème consiste à télécharger un fichier txt dans un dossier sécurisé (https://www.mydomain.com/myfolder/) à l'aide de cURL. J'ai des détails ftp pertinents pour connecter ce dossier. voici mon code, mais il ne se connecte pas correctement ...Publication de fichiers à l'aide de cURL dans un dossier sécurisé (https: //)

quelqu'un peut s'il vous plaît aviser quelle erreur j'ai fait sur ce code. qui retourne error_no: 7 alors que vous téléchargez un fichier

<? 
if (isset($_POST['Submit'])) { 
    if ($_FILES['upload']['name']!="") 
    { 
     $localfile = $_FILES['upload']['tmp_name']; 
     $newfile = $_FILES['upload']['name']; 
     $ch = curl_init(); 
     $url = 'ftp://ftp_login:[email protected]/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.'; 
    } 
} 
?> 
+0

FTP et HTTPS sont des protocoles différents. FTP ne prend pas en charge nativement le protocole SSL. – Borealid

Répondre

0

Selon this list, le code d'erreur 7 est

CURLE_COULDNT_CONNECT (7) 

Failed to connect() to host or proxy. 

Êtes-vous sûr que le serveur est accessible? Pouvez-vous essayer manuellement?

En outre, je ne comprends pas vraiment ce que vous faites ici. Vous établissez une connexion ftp mais en ajoutant des champs POST. En outre, rien de cela n'a à voir avec https. Qu'est-ce que vous essayez de faire exactement?

0

Je ne sais pas pourquoi vous devez utiliser cURL mais PHP a son propre FTP functions qui va vous faciliter la vie.