首先将ftpUpload.php放到指定目录内比如:D:\ftp
选择用户工具,新建一个组,组名自定义。例如: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 ;$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(本人博客,里面都是一些技巧,当然啦,,也有废话。。呵呵)