客户要求把图片服务器和程序相分离,直接把上传文件从服务器A使用ftp协议发送到服务器B.
函数内容如下:
function ftpupload($farr){ //传递参数为$_FILES,用户form提交上传的文件变量
$ftp_server = "8.8.8.8"; //ftp服务端ip地址
$ftp_user_name = "statics"; //ftp用户名
$ftp_user_pass = "dd97b9f6b5"; //ftp密码
$conn_id = ftp_connect($ftp_server);
$file = $farr['pic']['tmp_name'];
$arr = explode('.',$farr['pic']['name']);
$arr = strtolower($arr[count($arr)-1]);
if(!in_array($arr,array('jpg', 'gif', 'png', 'jpeg'))){
return 0;
}
$remote_file = time().'.'.$arr; //随机文件名,防止重复
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
ftp_chdir($conn_id,'uploads');
$exist_dir = ftp_nlist($conn_id,ftp_pwd($conn_id));
$date = date("Y-m-d");
$dir_name = '/uploads/'.$date;
//按日期创建文件夹
if(!in_array($dir_name, $exist_dir)){
if(!ftp_mkdir($conn_id,$dir_name)){
return 0;
}
}
ftp_chdir($conn_id,$dir_name);
if(ftp_put($conn_id, $remote_file,$file,FTP_BINARY)){
return $date.'/'.$remote_file; //返回文件路径和名称,记录到数据库中以便调用
}else{
return 0;
}
ftp_close($conn_id);
}