使用ftp和php脚本将图像上传到服务器时出错,导致ftp_put()登录出错 [英] Error uploading images to server using ftp and php script, giving error on ftp_put() login

查看:150
本文介绍了使用ftp和php脚本将图像上传到服务器时出错,导致ftp_put()登录出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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


[09-Apr-2014 19:00:01 Asia / Kolkata] PHP警告:ftp_login():对不起,此服务器上不接受
cleartext会话。 in
/home/gameeon/public_html/jts/local_upload.php on line 8 [09-Apr-2014
19:01:33 Asia / Kolkata] PHP Warning:ftp_login():Sorry,cleartext $此服务器上不接受b $ b会话。 in
/home/gameeon/public_html/jts/local_upload.php on line 8 [09-Apr-2014
19:01:55 Asia / Kolkata] PHP Warning:ftp_login():Sorry,cleartext $此服务器上不接受b $ b会话。 in
/home/gameeon/public_html/jts/local_upload.php on line 8 [09-Apr-2014
19:02:21 Asia / Kolkata] PHP Warning:ftp_login():Sorry,cleartext $此服务器上不接受b $ b会话。 in
/home/gameeon/public_html/jts/local_upload.php on line 8 [09-Apr-2014
19:03:59 Asia / Kolkata] PHP Warning:ftp_login():Sorry,cleartext $此服务器上不接受b $ b会话。 in
/home/gameeon/public_html/jts/local_upload.php on line 8


我的代码如下:

 <?php 
//连接并登录FTP服务器
$ ftp_server =ftp.gameeon 。在; //输入ftp主机名称
$ ftp_username =temp@gameeon.in; //把你的ftp用户名
$ ftp_userpass =********; //把你的ftp密码

$ ftp_conn = ftp_connect($ ftp_server)或死(无法连接到$ ftp_server);
$ login = ftp_login($ ftp_conn,$ ftp_username,$ ftp_userpass);

///将您的图像文件夹的路径放到您的远程服务器上,例如:
$ ftp_upload_path =public_html / img /;

///把图片文件夹的路径放到本地机器中:
$ files = glob(E:/ upload_images /*.*);

foreach($ files as $ fl)
{

$ fl_arr = explode(/,$ fl);
$ cn = count($ fl_arr);
$ num = $ cn-1;
$ file = $ fl_arr [$ num];
$ b $ //上传文件
// $ fl = localimages的完整路径

if(ftp_put($ ftp_conn,$ ftp_upload_path。$ file,$ fl,FTP_ASCII ))
{
echo成功上传$ file。< br />;
}
else
{
echoError uploading $ file。< br />;
}
sleep(3); ///在下载前暂停代码3秒

}

//关闭连接
ftp_close($ ftp_conn);
?>

我在这一行没有收到错误。 8这是:

$ $ p $ code $登录= ftp_login($ ftp_conn,$ ftp_username,$ ftp_userpass);


解决方案

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

试试这个:

  $ ftp_conn = ftp_ssl_connect($ ftp_server)
或die(无法连接到$ ftp_server);

如果您正在处理 localhost 遇到错误说:


ftp_put():我不会打开连接到192的连接。。* something ..


然后您必须使用 ftp_pasv 功能。

作为文档:


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


在你的情况下,你需要使用它 Explicit TLS / SSL 在您的循环添加之前添加:

  ftp_pasv($ ftp_conn,true); 

同时设置路径 public_html / img / / img / 或任何目录存在:

  $ ftp_upload_path = / IMG /; 


I have a script written in php which basically uploads images to a server. I'm uploading this script onto my server using an ftp account credentials. However when I try to access it, it gives me login error. Here's the error log:

[09-Apr-2014 19:00:01 Asia/Kolkata] PHP Warning: ftp_login(): Sorry, cleartext sessions are not accepted on this server. in /home/gameeon/public_html/jts/local_upload.php on line 8 [09-Apr-2014 19:01:33 Asia/Kolkata] PHP Warning: ftp_login(): Sorry, cleartext sessions are not accepted on this server. in /home/gameeon/public_html/jts/local_upload.php on line 8 [09-Apr-2014 19:01:55 Asia/Kolkata] PHP Warning: ftp_login(): Sorry, cleartext sessions are not accepted on this server. in /home/gameeon/public_html/jts/local_upload.php on line 8 [09-Apr-2014 19:02:21 Asia/Kolkata] PHP Warning: ftp_login(): Sorry, cleartext sessions are not accepted on this server. in /home/gameeon/public_html/jts/local_upload.php on line 8 [09-Apr-2014 19:03:59 Asia/Kolkata] PHP Warning: ftp_login(): Sorry, cleartext sessions are not accepted on this server. in /home/gameeon/public_html/jts/local_upload.php on line 8

My code is as follows:

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

I'm getting an error on this line no. 8 which is:

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

解决方案

You need to use ftp_ssl_connect() function instead of ftp_connect() because server is using Explicit TLS/SSL

Try this:

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

If you are working on localhost you may encounter error saying

ftp_put(): I won't open a connection to 192...* something..

Then you have to use the ftp_pasv function.

As of docs:

In passive mode, data connections are initiated by the client, rather than by the server. It may be needed if the client is behind firewall.

In your case yes you need to use it you are using Explicit TLS/SSL just before your loop add this:

ftp_pasv($ftp_conn, true);

Also set your path public_html/img/ to /img/ or whatever directory exists:

$ftp_upload_path = "/img/";

这篇关于使用ftp和php脚本将图像上传到服务器时出错,导致ftp_put()登录出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆