Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/08/2009, 21:31
iovan
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 4 meses
Puntos: 188
Respuesta: funcion unlink permission denied (windows)

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]
?> 
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.