代码之家  ›  专栏  ›  技术社区  ›  Biranchi

PHP中的FTP上载

  •  2
  • Biranchi  · 技术社区  · 15 年前

    我已经在我的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放置()[函数.ftp放置]:/del.php:第31行的/applications/xampp/xampfiles/htdocs/test/ftp1.php中的权限被拒绝 无法上载 警告:ftp chmod()[function.ftp chmod]:/del.php:第84行/applications/xampp/xampfiles/htdocs/test/ftp1.php中没有此类文件或目录 不能CHOMD

    有什么问题?是否需要启用任何设置?

    2 回复  |  直到 8 年前
        1
  •  1
  •   Evernoob    15 年前

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

        2
  •  1
  •   Tom11    8 年前
       $local_file = './del.php';
    

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