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