一、upload.php
<?php 
$Username="GTK";//用户名
$Password="GTK";//密码
$Server="localhost";//本机地址或主机名
$cdir="E:/";//
?>
<html>
<head>
<title>FTP服务器</title>
</head>
<body>
<form action="ftp.php" enctype="multipart/form-data" method=post>
<input type=hidden name=Username value=<? echo $Username; ?> >
<input type=hidden name=Password value=<? echo $Password; ?> >
<input type=hidden name=Server value=<? echo $Server; ?> >
<input type=hidden name=cdir value=<? echo $cdir; ?> >

<table>
<tr><td><input type=file name=upfile></td></tr>
<tr><td><input type=submit name=action value="上传"></td></tr>
</table>
</form>
</body>
</html>
二、ftp.php
<?php
function connect() {
global $Server,$Username,$Password;
$conn=ftp_connect($Server);              //建立FTP连接
ftp_login($conn,$Username,$Password);
return $conn;
}
$result= connect();
if($action=="上传")
{
ftp_chdir($result, $cdir);
$res_code=ftp_put($result,$upfile_name,$upfile,FTP_BINARY);
if($res_code==1)
{
echo "上传成功";
}
else
{
echo "上传失败";
 }
}
 ftp_quit($result);//关闭连接

?>
老给我报这三种错误:
Warning: ftp_login() [function.ftp-login]: Not logged in. in D:\AppServ\www\test\ftp\ftp.php on line 5Warning: ftp_chdir() [function.ftp-chdir]: Not logged in. in D:\AppServ\www\test\ftp\ftp.php on line 11Warning: ftp_put() [function.ftp-put]: Not logged in. in D:\AppServ\www\test\ftp\ftp.php on line 12
上传失败

解决方案 »

  1.   

    在ftp_login、ftp_chdir和ftp_put的前面加上@就不会报错了。
    操作成功与否,通过返回值判断就可以了。
      

  2.   

    登录失败,当然会有这样的错误。这个不是代码错误,是运行时的一些不影响PHP执行的错误。用“@”加在前面,或者使用error_reporting(0);屏蔽错误。
      

  3.   


    我都说了,那个只是一个屏蔽错误的方式,具体的解决,要看你FTP服务器的配置和是否连接成功和返回的错误信息,等等.