Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Borrar archivos del servidor desde entorno Wordpress

Estas en el tema de Borrar archivos del servidor desde entorno Wordpress en el foro de WordPress en Foros del Web. Alguien sabe si hay algún requisito o parametrización específica para el uso de [URL="http://php.net/manual/es/function.unlink.php"]'unlink'[/URL] en su uso sobre/bajo un entorno wordpress? En el archivo refuse.php ...
  #1 (permalink)  
Antiguo 11/07/2012, 15:12
 
Fecha de Ingreso: abril-2011
Mensajes: 72
Antigüedad: 6 años, 9 meses
Puntos: 0
Pregunta Borrar archivos del servidor desde entorno Wordpress

Alguien sabe si hay algún requisito o parametrización específica para el uso de [URL="http://php.net/manual/es/function.unlink.php"]'unlink'[/URL] en su uso sobre/bajo un entorno wordpress?

En el archivo refuse.php que llamo con el correspondiente botón, he insertado este código:

Código PHP:
include ("../../../wp-load.php");
session_start();
global 
$wpdb;

$id $_REQUEST['id'];
$motivo $_REQUEST['motivo'];

update_post_meta($id'motivo'$motivo);
$file get_post_meta($id'url_imagen'true);
$thumb get_post_meta($id'url_thumb'true);

$post = array(
    
"ID" => $id,
    
"post_status" => "trash"
);
wp_update_post($post);

unlink($file);
unlink($thumb);

wp_redirect($_SERVER['HTTP_REFERER']);

?> 
Pero me devuelve un error de que no se pudo encontrar wrap en htdocs/32165489/ etc etc.
Y 'headers already sent'.

Los archivos a los que se dirigen tanto url_imagen como url_thumb, son carpetas en la raíz del servidor, no dentro de la estructura del wordpress.
Existe alguna imposibilidad para hacer esto? O es simplemente que hay que añadir algún paso para que pueda hacerlo?

Muchas gracias por vuestra atención.
  #2 (permalink)  
Antiguo 12/07/2012, 10:29
 
Fecha de Ingreso: abril-2011
Mensajes: 72
Antigüedad: 6 años, 9 meses
Puntos: 0
Respuesta: Borrar archivos del servidor desde entorno Wordpress

Nadie me puede dar una pista?
  #3 (permalink)  
Antiguo 12/07/2012, 11:36
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 16 años, 10 meses
Puntos: 535
Respuesta: Borrar archivos del servidor desde entorno Wordpress

Estás seguro que tanto $file como $thumb devuelven el path y nombre de archivo correcto?
__________________
...___...
  #4 (permalink)  
Antiguo 16/07/2012, 06:44
 
Fecha de Ingreso: abril-2011
Mensajes: 72
Antigüedad: 6 años, 9 meses
Puntos: 0
Respuesta: Borrar archivos del servidor desde entorno Wordpress

Completamente. Pero la devuelve en el formato "http://dominio.com/imagenes/archivo.jpg"
Y Wordpress me da un error de que no se puede encontrar imagen en htdocs/32165489/ etc etc...
¿no se puede trabajar con rutas absolutas?
  #5 (permalink)  
Antiguo 16/07/2012, 07:26
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 16 años, 10 meses
Puntos: 535
Respuesta: Borrar archivos del servidor desde entorno Wordpress

No sé, nunca lo hice con rutas virtuales, siempre físicas.
Podrías comprobar con file_exists()

Código:
if (file_exists($file)) {
    echo "Existe";
}
else {
    echo "No existe";
}
Si devuelve "No existe", intentá poner la ruta física del archivo en lugar de la variable file y probar nuevamente:

Código:
if (file_exists('/ruta/a/archivo.ext')) {
...
__________________
...___...
  #6 (permalink)  
Antiguo 03/08/2012, 15:02
 
Fecha de Ingreso: abril-2011
Mensajes: 72
Antigüedad: 6 años, 9 meses
Puntos: 0
Respuesta: Borrar archivos del servidor desde entorno Wordpress

Al final era un error en el str_replace().
Reescribí el código entero a mano y lo comparé con el que tenía, que es el método que uso para ver si he cometido algún error estúpido de sintaxis.

El script que puse al inicio funciona siempre y cuando disfracemos la url del archivo de la siguiente manera:

Código PHP:
 $url str_replace("//""/"$url);
        
$url str_replace("http:/""http://"$url);
    
$url str_replace("http://dominio.com/""/homepages/16/d312312366/htdocs/"$url); 
Y luego ya sí podemos hacer el unlink.



Muchas gracias Alzuwaga por tu tiempo.
  #7 (permalink)  
Antiguo 03/08/2012, 15:10
 
Fecha de Ingreso: abril-2011
Mensajes: 72
Antigüedad: 6 años, 9 meses
Puntos: 0
Respuesta: Borrar archivos del servidor desde entorno Wordpress

Y no se puede hacer uso del bucle para mover archivos a otra carpeta?

Pongamos que quiero hacer una copia en otra carpeta de seguridad de archivos válidos para borrar aquellos de los que no se está haciendo uso en un directorio.

Yo intento:

Código PHP:
<?php     
             
if($_POST['usuario']){
            
$usuario $_POST['usuario'];
        }else{
          } 
?>
<?php 
  
if($_GET['pag']){ $pag $_GET['pag']; }else{ $pag 1; }
$new_query = new WP_Query("post_type=imagen&post_status=publish&posts_per_page=-1&order=ASC&order_by=name&paged=$pag&meta_key=autor_imagen&meta_value=".$usuario);
?>

<?php while ($new_query->have_posts ()) : $new_query->the_post(); ?>
<?php $post_meta 
get_post_custom(get_the_ID()); ?>
<?php 
if (isset($a)){ +$a; }else{ $a ; } 
echo 
"Imagen número: " $a++ . "<br />\n"?>
<font color="black">
<?php $urlgrande $post_meta['url_archivo'][0];
 
$urlgrande str_replace("//""/"$urlgrande);
        
$urlgrande str_replace("http:/""http://"$urlgrande);
    
$urlgrande str_replace("http://dominio.com/""/homepages/16/d1231230266/htdocs/"$urlgrande);
       
$filename str_replace(site_url(), ""$urlgrande);
        
$filename "../../.." $filename;


?>
<?php 
 $destino 
"../../../../backup/" $filename 
copy($urlgrande$destino);    

?>



<?php endwhile; ?>
Con esto trataba de recorrer el loop copiando cada resultado en otra carpeta, y a pesar de que no reporta ningún error de sintaxis en php, no copia nada. La primera parte del script es porque a través de formulario consulta un determinado usuario.
La página que contiene el script está alojada en "dominio.com/wp-content/plugins/plugin/admin/" por eso lo de los retrocesos en el directorio a través de ../ , pero no sé si es por eso que no realiza la copia.

Alguien sabe por qué el script no hace la copia , o por qué no reporta error, o como hacer lo mismo de otra manera?

Muchas gracias de antemano

Etiquetas: archivos_externos, unlink
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 21:37.