<?php
header(
'Content-type:text/html;charset=utf-8'
);
if
(!
empty
(
$_POST
[
'files'
])) sync();
function
sync(){
$aFiles
=
explode
(
"\n"
,
$_POST
[
'files'
]);
foreach
(
$aFiles
as
$k
=>
$v
){
if
(
strlen
(
$v
) <= 5) unset(
$aFiles
[
$k
]);
}
array_filter
(
$aFiles
);
if
(
empty
(
$aFiles
)) {
echo
'没有文件'
;
exit
;
}
$aFTPServers
=
array
(
'server1'
=>
array
(
'strwei.com'
,
'FTP用户名'
,
'FTP密码'
,
'打开FTP进去时的默认目录'
),
);
$aAbortFile
=
array
(
'robots.txt'
);
$aErrors
=
array
();
$iError
=
count
(
$aErrors
);
$aSuc
=
array
();
foreach
(
$aFTPServers
as
$ftp
) {
$conn
= ftp_connect(
$ftp
[0]);
if
(
empty
(
$conn
)){
$iError
=
$iError
+ 1;
array_push
(
$aErrors
,
$iError
.
"、服务器 $ftp 无法连接"
);
continue
;
}
$login
= ftp_login(
$conn
,
$ftp
[1],
$ftp
[2]);
if
(
empty
(
$login
)){
$iError
=
$iError
+ 1;
array_push
(
$aErrors
,
$iError
.
"、服务器 $ftp[0] 无法登录"
);
continue
;
}
$ftp_root
=
''
;
if
(!
empty
(
$ftp
[3]))
$ftp_root
= ftp_chdir(
$conn
,
$ftp
[3]);
$ftp_root
= ftp_pwd(
$conn
);
if
(
substr
(
$ftp_root
, -1) ==
'/'
)
$ftp_root
=
substr
(
$ftp_root
, 0, -1);
foreach
(
$aFiles
as
$k
=>
$v
){
$s
=
basename
(
$v
);
if
(in_array(
$s
,
$aAbortFile
)) {
$iError
=
$iError
+ 1;
array_push
(
$aErrors
,
$iError
.
"、文件 $v 不允许同步"
);
continue
;
}
if
(!
file_exists
(
'.'
.
$v
)) {
$iError
=
$iError
+ 1;
array_push
(
$aErrors
,
$iError
.
"、文件 $v 不存在"
);
continue
;
}
$upload
= ftp_put(
$conn
,
$ftp_root
.
$v
,
'.'
.
$v
, FTP_BINARY);
if
(
empty
(
$upload
)){
$iError
=
$iError
+ 1;
array_push
(
$aErrors
,
$iError
.
"、文件 $v 上传失败"
);
continue
;
}
array_push
(
$aSuc
,
$v
);
}
}
if
(
empty
(
$aErrors
)) {
echo
'上传成功: '
. implode(
'、'
,
$aSuc
);
exit
;
}
echo
implode(
'<br>'
,
$aErrors
);
exit
;
}
$cc
=
'\r\n'
;
echo
'<script src="//cdn.bootcss.com/jquery/3.0.0/jquery.js"></script>'
;
echo
<<<EOF
请输入你要同步的文件名(包括它的路径),例如:inoutcome_final.zip、/
default
.php、/index.php、/inoutcome_final.sqlite等等,每行输入一个文件名,可回车输入多个<br><br>
<textarea style=
"width:450px; height:85px; border:1px #000 solid;"
id=
"id_file"
onkeyup=
"this.value=this.value.replace(/ /g,'');"
></textarea><br>
<button id=
"btn_submit"
onclick=
"return submit_sync();"
>同步以上文件</button> <br><span id=
"show_sync"
style=
"color:#f00;"
></span>
<script>
function
submit_sync(){
$(
"#btn_submit"
).hide();
var
sFiles = $(
"#id_file"
).val();
var
aFiles = sFiles.split(/
$cc
/);
if
(aFiles.length <= 0 || aFiles[0].length <= 5) {
alert(
"请手工写入要同步的文件清单"
);
$(
"#btn_submit"
).show(
"slow"
);
return
false;
}
$.post(
"?"
, {
"files"
:sFiles},
function
(v){
$(
"#show_sync"
).text(v);
if
(v.indexOf(
"上传成功"
) != -1) $(
"#id_file"
).val(
''
);
$(
"#btn_submit"
).show(5000);
})
return
true;
}
</script>
EOF;
?>