Foros del Web » Programando para Internet » PHP »

funcion unlink permission denied (windows)

Estas en el tema de funcion unlink permission denied (windows) en el foro de PHP en Foros del Web. Hola amigos, les comento que estoy usando la funcion unlink para borrar archivos de mi servidor, ya la he usado antes muchas veces pero ahora ...
  #1 (permalink)  
Antiguo 03/08/2009, 22:54
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
funcion unlink permission denied (windows)

Hola amigos, les comento que estoy usando la funcion unlink para borrar archivos de mi servidor, ya la he usado antes muchas veces pero ahora no consigo efectuarla

Código PHP:
$origen "../themes/nombretema.zip";
unlink($origen); 
ME sale el mensaje de:

Warning: unlink(D:/_root/AppServ/www/scripts/001/themes/nombretema.zip) [function.unlink]: Permission denied in D:/_root/AppServ/www/scripts/001/themes/nombretema.zip on line 108

Que puede estar pasando?? El servidor esta sobre windows.

Gracias
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #2 (permalink)  
Antiguo 04/08/2009, 06:21
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 8 meses
Puntos: 55
Respuesta: funcion unlink permission denied (windows)

comproba los permisos entonces y podrias implementar algo con is_writable()
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 04/08/2009, 08:24
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: funcion unlink permission denied (windows)

Estimado , haz comprobado la existencia de dicho fichero y si existe ha comprobado que dicho fichero no este bloqueado por otra aplicación?.

Saludos!
  #4 (permalink)  
Antiguo 04/08/2009, 21:31
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 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 +.
  #5 (permalink)  
Antiguo 05/08/2009, 10:58
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: funcion unlink permission denied (windows)

Creo que esto se soluciona si hago

Código PHP:
<?php
if($zip) { unlink('carpeta/'.$tmp_alt_name.'.zip'); } else { echo "No se ha completado"; }
?>
Esto yen lo correcto ?
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:24.