2009-09-22 15 views
2

J'ai installé XAMPP vrsion 1.7.2 sur mon Mac OS 10.5.7?Téléchargement FTP en PHP

J'utilise le code suivant pour télécharger un fichier, mais je reçois quelques erreurs

<? 

$host = 'localhost'; 
$usr = 'nobody'; 
$pwd = 'xampp'; 

// connect to FTP server (port 21) 
$conn_id = ftp_connect($host, 21) or die ("Cannot connect to host"); 

// send access parameters 
ftp_login($conn_id, $usr, $pwd) or die("Cannot login"); 


// turn on passive mode transfers (some servers need this) 
ftp_pasv ($conn_id, true); 


// perform file upload 

// file to upload: 
$local_file = './del.php'; 
$ftp_path = '/del.php'; 

$upload = ftp_put($conn_id, $ftp_path, $local_file, FTP_ASCII); 

// check upload status: 
if(!$upload) { 
    print 'Cannot upload' ; 
} else { 
    print 'Upload complete'; 
} 
print "\n"; 

/* 
** Chmod the file (just as example) 
*/ 

// If you are using PHP4 then you need to use this code: 
// (because the "ftp_chmod" command is just available in PHP5+) 

if (!function_exists('ftp_chmod')) { 
    function ftp_chmod($ftp_stream, $mode, $filename){ 
     return ftp_site($ftp_stream, sprintf('CHMOD %o %s', $mode, $filename)); 
    } 
} 

// try to chmod the new file to 666 (writeable) 
if (ftp_chmod($conn_id, 0666, $ftp_path) !== false) { 
    print $ftp_path . " chmoded successfully to 666\n"; 
} else { 
    print "could not chmod $file\n"; 
} 

// close the FTP stream 
ftp_close($conn_id); 

?> 

Je reçois cet avertissement.

Attention: ftp_put() [function.ftp-put]: /del.php: Permission refusée à /Applications/XAMPP/xamppfiles/htdocs/test/ftp1.php en ligne 31 ne peut pas télécharger Attention: ftp_chmod () [function.ftp-chmod]: /del.php: Aucun fichier ou répertoire dans /Applications/XAMPP/xamppfiles/htdocs/test/ftp1.php en ligne 84 ne pouvait chmod

Quel est le problème? Y a-t-il un paramètre que je dois activer?

Répondre

1

Il semble que PHP ne dispose pas d'autorisations de lecture/écriture sur ce répertoire. C'est quelque chose que vous pouvez résoudre sur votre Mac tout en développant localement mais sachez que le problème risque de se répéter lorsque vous migrez vers votre serveur de production.

1
$local_file = './del.php'; 

Vérifiez vos autorisations de fichier del.php.