tags:

views:

351

answers:

2
+1  Q: 

FTP Upload in PHP

hi All,

I have installed XAMPP vrsion 1.7.2 on my Mac OS 10.5.7 ?

I am using the following code to upload a file , but i am getting few errors

<?

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

?>

I am getting this warning .

Warning: ftp_put() [function.ftp-put]: /del.php: Permission denied in /Applications/XAMPP/xamppfiles/htdocs/test/ftp1.php on line 31 Cannot upload Warning: ftp_chmod() [function.ftp-chmod]: /del.php: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/test/ftp1.php on line 84 could not chmod

What is the problem ? Is there any setting that I need to enable ?

+1  A: 

It looks like PHP does not have read/write permissions to that directory. This is something that you can resolve on your Mac while developing locally but be aware that the problem may likely repeat itself when you migrate to your production server.

Evernoob
+1  A: 

$local_file = './del.php';

check your "del.php" file permissions

bader