用PHP上传FTP

时间:2009-09-22 12:20:38

标签: php ftp xampp

我在Mac OS 10.5.7上安装了XAMPP vrsion 1.7.2?

我使用以下代码上传文件,但我收到的错误很少

<?

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

?>

我收到了这个警告。

警告:ftp_put()[function.ftp-put]:/ del.php:第31行/Applications/XAMPP/xamppfiles/htdocs/test/ftp1.php中的权限被拒绝 无法上传 警告:ftp_chmod()[function.ftp-chmod]:/ del.php:第84行的/Applications/XAMPP/xamppfiles/htdocs/test/ftp1.php中没有这样的文件或目录 不能chmod

有什么问题?我需要启用任何设置吗?

2 个答案:

答案 0 :(得分:1)

看起来PHP没有对该目录的读/写权限。这是您在本地开发时可以在Mac上解决的问题,但请注意,当您迁移到生产服务器时,问题可能会重演。

答案 1 :(得分:1)

   $local_file = './del.php';

检查您的del.php文件权限。