我正在建立一个上传档案并提取为ftp的系统,但由于php没有功能" ftp_unzip",我必须进行存档以提取内部主机。
<?php
//Upload the image file to the server
$ftp_server = 'luis.habboproject.net';
$ftp_user_name= 'login';
$ftp_user_pass = 'senha';
echo $_FILES['userfile']['name'];
$source_file= "archive.zip";
$destination_file="/public_html/archive.zip";
$source_file2= "oi.php";
$destination_file2="/public_html/oi.php";
// set up basic connection
$conn_id = ftp_connect($ftp_server);
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// check connection
if ((!$conn_id) || (!$login_result)) {
echo "FTP connection has failed!";
echo "Attempted to connect to $ftp_server for user $ftp_user_name";
exit;
} else {
echo "Connected to $ftp_server, for user $ftp_user_name";
}
// turn passive mode on
ftp_pasv($conn_id, true);
// upload the file
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
$upload2 = ftp_put($conn_id, $destination_file2, $source_file2, FTP_BINARY);
// check upload status
if (!$upload) {
} else{
// Code to Acting a page http://luis.habboproject.net/oi.php to extract the archive.zip in a host
}
// close the FTP stream
ftp_close($conn_id);
?>
我想知道php或javascript中是否有某些功能,它们具有&#34;提交按钮&#34;的相同结果,但没有点击。换句话说,我想执行存档以激活提取器。
答案 0 :(得分:0)
eu vejoquevocêpodesimplificar um pouco a estrutura doseucódigo,onde com umalibraryvocêpodezipar e unzipar os arquivos com a mesma:zipArchive。
介绍dessa图书馆vocêpodedeszipar o arquivo no seu servidor da seguinte forma:
<?php
$Zip = new ZipArchive;
$result = $zip->open('arquivo.zip');
if($result)
{
$Zip->extractTo($_SERVER["DOCUMENT_ROOT"].'/diretorio_desejado_unzip/')
$Zip->close();
echo "UHUL! Deu certo!";
}
else
{
echo "Oops! Algo deu errado";
}
?>
Ao fazer o upload do arquivo,vocêpodesimplesmente usar o exemplo acima para extrair o seu arquivo sem a mustidade de dar um submit ou acessar o arquivo de qualquer forma。
Caso ainda queira acessar o arquivo de alguma forma,vocêpodeusar a biblioteca CURL。
com a biblioteca CURL,vocêpodetestar:
$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, $url);
curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($handle);
curl_close($handle);
print_r($data);