您的位置:首页 > 编程语言 > PHP开发

配置editplus,让本地文件直接上传到ftp对应目录中

2016-07-05 08:57 633 查看
首先将ftpUpload.php放到指定目录内比如:D:\ftp

2、打开editplus的参数设置


选择用户工具,新建一个组,组名自定义。例如:PHP

然后选择添加工具-》应用程序-》



命令选择PHP.exe文件,例如:F:\PHPnow\php-5.2.14-Win32\php.exe

在参数中填上:【-f d:/ftp/ftpUpload.php -- -f $(FilePath)】 中括号里面的内容

动作选择:捕捉输出。选择应用。

再配置ftpUpload.php文件里面的内容:

// 定义FTP相关参数

$ftp_host = '127.0.0.1'; //服务器IP

$ftp_user = 'demo'; //ftp用户名

$ftp_pass = 'demo'; //ftp密码

$ftp_port = 21; //ftp端口

$pasv_mode = true; //是否安全模式

// 定义开发环境路径

$remote_root_dir = '/demo' ; //ftp目录可以只填写“/”

// 定义本地上传路径(此路径等价于开发环境路径)

$local_root_path = 'F:/PHPnow/htdocs/demo'; //本地文件路径,切记路径

在editplus中选择工具组PHP,会出现如下图:



OK,,,配置结束,我们在本地文件修改下,在某一行添加一个”#”,试试。嘿嘿。。。成功了吧

再附上ftpUpload.php的代码:

<?php
/**
* Editplus FTP同步脚本
* Author: iColin
* Date: 2010年12月11日
* Homepage: http://icolin.org */

// 定义FTP相关参数
$ftp_host = '127.0.0.1';
$ftp_user = 'demo';
$ftp_pass = 'demo';
$ftp_port = 21;
$pasv_mode = true;

// 定义开发环境路径
$remote_root_dir = '/' ;

// 定义本地上传路径(此路径等价于开发环境路径)
$local_root_path = 'F:/PHPnow/htdocs/demo';

// 处理参数
array_shift($argv) ;
$file_info = array() ;
for($i=0 , $length = count($argv);$i < $length
7fe0
;$i+=2){
$file_info[$argv[$i]] = $argv[$i+1] ;
}
$file_path = str_replace('\\', '/', $file_info['-f']);

// 只允许提交指定路径下的文件
if(strpos($file_path, $local_root_path) === false){
echo 'you can only upload file in the "'.$local_root_path.'"'."\n" ;
exit() ;
}

// 检查文件是否合法
if(!is_file($file_path)) {
echo "$file_path is bad file.\n";
exit() ;
}

// 处理路径
$local_root_dir = substr($local_root_path, strrpos($local_root_path, '/') +1 );
$file_name = substr($file_path, strrpos($file_path, '/')+1) ;
$local_root = substr($file_path, 0, strrpos($file_path, '/')+1) ;
$remote_root = $remote_root_dir.substr($local_root, strpos($local_root, $local_root_dir) + strlen($local_root_dir)) ;

//echo $file_path."\n".$file_name."\n".$local_root."\n".$remote_root."\n" ;
//exit() ;

// FTP连接 上传
$ftp = getFtpConnection($ftp_host, $ftp_port, $ftp_user, $ftp_pass, $pasv_mode);
$files = array($file_name);
upload($ftp, $remote_root, $local_root, $files);
ftp_close($ftp);

/**
* 连接FTP
* @param $host {string} 主机名
* @param $user {string} 用户名
* @param $pass {string} 密码
* @param $pasv {boolean} 是否打开被动模式
*/
function getFtpConnection($host, $port, $user, $pass, $pasv) {
$ftp = @ftp_connect($host, $port);
if($ftp === false) {
echo "Connect to FTP Failed!\n";
exit() ;
}
if(!@ftp_login($ftp, $user, $pass)) {
echo "Login FTP Failed!\n";
exit() ;
}
if(!@ftp_pasv($ftp, $pasv)) {
echo "Choose PASV mode Failed!\n";
exit() ;
}
return $ftp;
}

/**
* FTP上传文件
* @param $ftp FTP连接标识符
* @param $remote_root {string} 远程路径
* @param $local_root {string} 本地路径
* @param $uploadFiles {array} 要上传的文件
*/
function upload($ftp, $remote_root, $local_root, $uploadFiles) {
if(count($uploadFiles) == 0) {
echo "No file found.\n";
exit() ;
}
if(!@ftp_chdir($ftp, $remote_root)) {
echo "Change dir to $remote_root Failed!\n";
exit() ;
}
foreach($uploadFiles as $f) {
if(ftp_put($ftp, basename($f), $local_root.$f, FTP_BINARY)) {
echo "$f uploaded Successfully! \n";
} else {
echo "$f upload Failed! \n";
}
}
}

?>


本文章是在上面那位写代码的哥们空间里学习的,,大家有兴趣的话,可以去看看。。。。更多PHP技术:http://wjima.a173.cnaaa4.com(本人博客,里面都是一些技巧,当然啦,,也有废话。。呵呵)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息