使用ftp和php脚本将图像上传到服务器时出错,在ftp_put()登录时出错

时间:2014-04-09 15:33:01

标签: php ftp cpanel

我有一个用php编写的脚本,它基本上将图像上传到服务器。 我使用ftp帐户凭据将此脚本上传到我的服务器上。但是,当我尝试访问它时,它会给我登录错误。这是错误日志:

  

[2014年4月9日19:00:01亚洲/加尔各答] PHP警告:ftp_login():对不起,   此服务器不接受明文会话。在   第8行/home/gameeon/public_html/jts/local_upload.php [2014年4月9日]   19:01:33亚洲/加尔各答] PHP警告:ftp_login():对不起,明文   此服务器不接受会话。在   第8行/home/gameeon/public_html/jts/local_upload.php [2014年4月9日]   19:01:55亚洲/加尔各答] PHP警告:ftp_login():对不起,明文   此服务器不接受会话。在   第8行/home/gameeon/public_html/jts/local_upload.php [2014年4月9日]   19:02:21亚洲/加尔各答] PHP警告:ftp_login():对不起,明文   此服务器不接受会话。在   第8行/home/gameeon/public_html/jts/local_upload.php [2014年4月9日]   19:03:59亚洲/加尔各答] PHP警告:ftp_login():对不起,明文   此服务器不接受会话。在   第8行/home/gameeon/public_html/jts/local_upload.php

我的代码如下:

<?php
// connect and login to FTP server
$ftp_server = "ftp.gameeon.in"; // enter the ftp host name
$ftp_username = "temp@gameeon.in"; // put your ftp user name
$ftp_userpass = "********"; // put your ftp password

$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);

/// put the path of your image folder in your remote server i.e:
$ftp_upload_path="public_html/img/";

/// put the path of your image folder in your local machine:
$files = glob("E:/upload_images/*.*");

 foreach($files as $fl)
 {

     $fl_arr = explode("/",$fl); 
     $cn=count($fl_arr);
     $num=$cn-1;
     $file=$fl_arr[$num];

     // upload file
     // $fl = full path of localimages

     if (ftp_put($ftp_conn, $ftp_upload_path.$file,$fl, FTP_ASCII))
     {
         echo "Successfully uploaded $file. <br/>";
     }
     else
     {
         echo "Error uploading $file.<br/>";
     }
     sleep(3); /// pausing the code for 3 secs before next upload

 }

 // close connection
 ftp_close($ftp_conn);
?>

我在这条线路上收到错误。 8是:

$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);

1 个答案:

答案 0 :(得分:5)

您需要使用ftp_ssl_connect()函数而不是ftp_connect(),因为服务器正在使用显式TLS / SSL

试试这个:

$ftp_conn = ftp_ssl_connect($ftp_server)
            or die("Could not connect to $ftp_server");

如果您正在使用localhost,则可能会遇到错误说

  

ftp_put():我无法打开与192的连接。。*某事..

然后你必须使用ftp_pasv功能。

截至文档:

  

在被动模式下,数据连接由客户端发起   而不是服务器。如果客户端位于防火墙之后,可能需要它。

在您的情况下,您需要在循环添加之前使用显式TLS / SSL

ftp_pasv($ftp_conn, true);

还将路径public_html/img/设置为/img/或存在任何目录:

$ftp_upload_path = "/img/";