php - programa - quitar contraseña a archivo zip
¿Cómo extraer un archivo ZIP que tiene una contraseña usando solo PHP? (2)
Solo he visto una pregunta aquí, pero no responde mi pregunta. Estoy ejecutando un servidor LAMP típico que tiene los PHP 5 más actualizados y MYSQL 5 con Redhat Linux.
Necesito encontrar una solución solo de PHP porque mi host no me permite usar shell.
Aquí está mi código que extrae los archivos ZIP que no están pasados de los archivos vBulletin a otro directorio:
if ($_GET[''add''] == TRUE){
$zip = new ZipArchive;
$res = $zip->open($SOURCE FOLDER);
if ($res === TRUE) {
$zip->extractTo(''$DESTINATION FOLDER/'');
$zip->close();
echo ''File has been added to the library successfuly'';
//Add a flag to that file to indicate it has already been added to the library.
mysql_query("UPDATE attachment SET library = 1 WHERE filedataid=''$fileid''");
} else {
echo ''A uncompression or file error has occured'';
}}
Debe haber alguna manera de hacer esto usando solo PHP, seguramente! Gracias.
ACTUALIZACIÓN: Mi host me informa que gzip está instalado en el servidor pero no en 7-Zip. Estoy buscando acceso a la concha también.
Tenga el ejecutable 7zip disponible para el script y llámelo para descomprimir el archivo con la contraseña a través de system ().
$strCommandLine = "7z e fileToUnzip.7z -pTHEPASSWORD";
system($strCommandLine);
Puede hacer algo similar con unzip
, si el host lo tiene instalado. Ver http://linux.about.com/od/commands/l/blcmdl1_unzip.htm .
Es compatible con -P con una contraseña, algo así:
$strCommandLine = "unzip fileToUnzip.7z -P THEPASSWORD";
system($strCommandLine);
Advertencia: alguien podría ver tu contraseña en esa línea de comando si hacen un ps en el sistema y ver que se ejecuta tu comando de descompresión.
puede usar esta función setPassword (string $ password) http://php.net/manual/en/ziparchive.setpassword.php