Hola mias amigos, miren, si existe el fichero y s cuento con los permisos adecuados para borrar el archivo. Lo que pasa es esto:
Con un script en PHP ago lo siguiente:
Verifico que el archivo a subir ea aplication/zip y si es asi lo subo al servidor, inserto la ruta del rchivo en la DB y posteriormente descomprimo la ZIP en la misma carpeta que el servidor.
Despues de todo esto ejecuto el unlink para borrar el zip, con la intencion que me quede en el servidor solo la carpeta descomprimida.
Lo que yo creo que esta pasando es que la funcion unlink no puede borrar la zip porque la funcion unzip esta descomprimiendola. Imagino que este debe ser el problema porque cuando ejecuto la funcion unlink de la misam forma con las mismas variables pero sin usan la clase unzip de php si me borra el archivo.
A continuacion pego el codigo que estoy usando, por si algunode ustedes se anima a sugerirme una solucion y tambien claro para que sirva como referencia a futuras busquedas.
Código PHP:
if(isset($_POST['add_theme'])){
//Definimo variables
$tmp_name = $_POST['tmp_name'];
$tmp_alt_name = $_POST['tmp_alt_name'];
$temp = $_FILES['tmp_file']['tmp_name'];
$ruta = "D:/_root/AppServ/www/scripts/001/themes/".$tmp_alt_name.".zip";
$direction = "http://localhost/scripts/001/themes/".$tmp_alt_name;
//Verificar campos vacios
if(empty($_POST['tmp_name'])){ echo "Debe ponerle un nombre a su tema"; }
elseif(empty($_POST['tmp_alt_name'])) { echo "El sistema no puede completar su solicitud"; }
elseif(empty($_FILES['tmp_file']['name'])) { echo "Debe subir un archivo"; }
else {
if($_FILES['tmp_file']['type'] == "application/zip"){
// Iniciamos sesion FTP
include('includes/login_ftp.php');
//Subimos archivo
if (is_uploaded_file($temp)){
$ifcopy = copy($temp, $ruta);
// Cerramos coneccion FTP
ftp_close($ftp_connect);
}
//Comprobamos si se subio el archivo
if(!$ifcopy){ echo "No se ha subido el archivo, ERROR DEL SERVIDOR"; }
// Descomprimimos el arcivo
include('includes/dUnzip2.inc.php');
include('includes/dZip.inc.php');
$zip = new dUnzip2('../themes/'.$tmp_alt_name.'.zip');
$zip->debug = false;
$zip->unzipAll('../themes/'.$tmp_alt_name.'');
// Insertamos en DB
$sql = "INSERT INTO themes (name,name_alt,ruta,date,dir) VALUES ('$tmp_name','$tmp_alt_name','$direction',NOW(),'$ruta')";
$res = mysql_query($sql);
//Comprobamos si se ha insertado
if(!$res){ echo "NO SE HA INSERTADO"; }
//Borramos carpeta ZIP
$ifdelete = unlink('carpeta/'.$tmp_alt_name.'.zip');
if(!$ifdelete){ echo "No se pudo borrar"; } else { echo "Se ha borrado con exito"; }
}//Fin if($_FILES['tmp_file']['type'] == "application/zip")
else { echo "El archivo no es admitido"; }
}// Fin else campos vacios
}//If isset $_POST[add_theme]
?>