PHP 上传文件
bool ftp_put ( resource $ftp_stream , string $remote_file , string $local_file ,int $mode [, int $startpos ] )
ftp_put()函数用来上传由local_file参数指定的文件到FTP 服务器,上传后的位置由remote_file指定。传输模式参数
ftp_stream
FTP 连接资源。
remote_file
远程文件路径。
local_file
本地文件路径。
mode
传送模式,只能为FTP_ASCII(文本模式)或FTP_BINARY(二进制模式)。
成功时返回TRUE,或者在失败时返回FALSE.
ftp_get()函数从 FTP 服务器上下载一个文件。
若成功则返回 true,失败则返回 false。
语法
ftp_get(ftp_connection,local,remote,mode,resume)
ftp_connect() 函数建立一个新的 FTP 连接。
若成功,则返回一个连接标识,否则返回 false。
语法
ftp_connect(host,port,timeout)
ftp_login() 函数登录 FTP 服务器。
若成功则返回 true,失败则返回 false 并发出一个警告。
语法
ftp_login(ftp_connection,username,password)
实例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>FTP上传文件类</title> </head> <?php /* * php连接ftp 数据库*/ $Ftp_Server = "172.22.2.240"; //FTP 服务器地址 $Ftp_User = "root"; //FTP 服务器用户名 $Ftp_Pwd = "sss"; //FTP 服务器密码 //由于连接相对机密 使用@屏蔽错误 //连接FTP 服务器 返回FTP 连接的id 号 $FTP_Conn_id = ftp_connect($Ftp_Server)or die("连接ftp 服务器出错。"); //登陆FTP 服务器 登陆FTP 使用 FTP 连接id 号 FTP用户密码; 返回TRUE AND FALSE 到 FTP_Login $FTP_Login = ftp_login($FTP_Conn_id,$Ftp_User,$Ftp_Pwd); //判断连接过程中没有出现错误 if($FTP_Conn_id && $FTP_Login){ echo "FTP 连接成功"; }else{ echo "FTP 连接失败"; } /*************连接FTP 服务器成功********/ ?> <body> <form enctype="multipart/form-data" action="" method="post"> 请选择文件: <br> 第一集<input name="upload_file[1]" type="file"><br> <input name="submit" type="submit" value="上传至FTP"> </form> </body> </html> <?php //判断是否进行提是交了 if(!empty($_POST[submit])){ $file = $_FILES[upload_file]; //上传路径 $upload_dir="./upload/"; //服务器地址 //使用for 循环 为上传多集准备 for($i = 1 ; $i <= 1 ; $i++) { //将上传的文件移动到指定目录 move_uploaded_file($file[tmp_name][$i],$upload_dir.$i."-".$file[name][$i]); //将上传到本地的文件传送到FTP 上面 echo $Source_File = $upload_dir.$i."-".$file[name][$i]; //定义源文件目录 echo "<br>"; echo $Destination_File = "./load/".$i."-".$file[name][$i]; // 上传目标地址 //执行FTP 上传函数 $FTP_Put = ftp_put($FTP_Conn_id,$Destination_File,$Source_File,FTP_BINARY); //FTP_BINARY 是指文件上传格式 //文件上传后返回一个布尔值结果 if($FTP_Put){ echo "文件上传成功"; //true }else{ echo "文件上传出现错误"; //false } } } ?> </body> </html>
开始不断出现
ftp_put() [function.ftp-put]: Could notcreate file
说是无法创建文件什么的。后来原来发现我上传的文件目录只是
$Destination_File = "./load/"
原因是没有告诉他你的保存的文件叫什么名字
下面是我加了名字后的代码
$Destination_File ="./load/".$i."-".$file[name][$i];
当然有点就是你可以自己判断这个load 文件目录是否存在。如果不存在,则你需要创建它
创建语法
if(!ftp_chdir($conn_id,$path)) { ftp_mkdir($conn_id,$path); }