我有一个用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);
答案 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/";