PHP FTP: 访问被拒绝。

4
我正在使用php页面进行FTP上传。
<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
flush();

$ftp_server = "myserver";
$ftp_user_name="myuser";
$ftp_user_pass="mypass";
$remote_file="myfile.txt";
$file="myfile.txt";

// set up a connection or die
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server"); 
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);


if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "successfully uploaded $file\n";
} else {
 echo "There was a problem while uploading $file\n";
}

// close the connection
ftp_close($conn_id);
 ?>

当我在浏览器中时,它给了我一个警告,如下所示:

Warning: ftp_put(): Access is denied. in /var/www/html/ftpcheck.php on line 17. There was a problem while uploading myfile.txt.

我检查了文件的访问权限,但它是可访问的。有人可以告诉我为什么会这样吗?

你能否使用普通的FTP应用程序(例如http://filezilla-project.org/)来上传文件?可能是你正在上传到的目录权限问题。 - andyb
@andyb:我不能手动完成这个操作。我必须这样做,因为我想使用PHP上传接收到的文件并进行FTP上传。我正在测试它。 - Kris
你应该独立测试FTP上传,以排除FTP服务器上的问题,例如上传目录的权限问题。 - andyb
1
它是不可访问的。这就是为什么错误显示访问被拒绝。 - Lightness Races in Orbit
3个回答

3

很可能这是一个权限问题。当您通过FTP上传文件时,还需要检查目录的权限。当您说它是可访问的时,并不意味着它是可写的。


1

你没有检查登录操作的结果:

if (ftp_login($conn_id, $ftp_user_name, $ftp_user_pass)) {
    echo "Connected as $ftp_user_name@$ftp_server\n";
} else {
    echo "Couldn't connect as $ftp_user_name\n";
}

您还应该尝试从 PHP 主机到 FTP 主机进行手动 FTP 操作,以确保您可以使用这些凭据登录并放置文件。这将帮助您确定是您的代码出了问题还是 FTP 凭据有误。


-1
           <?php 
           class Ftp {
          function upload()
         {
           $ftp_server="50.56.113.39";
           $ftp_user_name="******";
           $ftp_user_pass="***";
           $file = "form.pdf";//tobe uploaded
           $remote_file = "uploads1/test.pdf";

        // set up basic connection
         $conn_id = ftp_connect($ftp_server);

         // login with username and password
         $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

         // upload a file
        if (ftp_put($conn_id, $remote_file, $file,  FTP_BINARY))
         {
          echo "successfully uploaded $file\n";
         //exit;
         } 
         else
           {
            echo "There was a problem while uploading $file\n";
            //exit;
            }
           // close the connection
         ftp_close($conn_id);

          }
            }
          ?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接