Foros del Web » Programando para Internet » PHP »

Eliminar Archivos con PHP y JS

Estas en el tema de Eliminar Archivos con PHP y JS en el foro de PHP en Foros del Web. Hola, en primer lugar quiero hacer constancia de que el tema está duplicado haciendo referencia a éste enlace: AQUI ¿Porqué lo duplico? Pues bien, pues ...
  #1 (permalink)  
Antiguo 08/03/2011, 10:34
Avatar de Z3R0N3  
Fecha de Ingreso: junio-2010
Ubicación: En algún lugar de la mancha de cuyo nombre no quiero acordarme...
Mensajes: 73
Antigüedad: 13 años, 10 meses
Puntos: 4
Eliminar Archivos con PHP y JS

Hola, en primer lugar quiero hacer constancia de que el tema está duplicado haciendo referencia a éste enlace:

AQUI


¿Porqué lo duplico?


Pues bien, pues varios motivos y no se queda simplemente en la falta de moderación por parte de la sección de JS (algo que no me preocupa sabiendo que es un servicio gratuito por parte de la amabilidad del mismo moderador y de la comunidad... por lo que no hay que echar culpas de nada a nadie por éste problema. Gracias a ambas partes), sino que como bien dije en ese enlace no sabía donde encuadrar éste tema si en la sección de PHP o en la de JS.

Viendo que en la sección de JS el tema ha quedado obsoleto sin contar la aclaración a dudas de un usuario que ha tenido la amabilidad de al menos responder (Gracias esjuanma). Me remito a Postear de nuevo el debate en ésta sección ya que como es obvio, si por mi fuera eliminaría el antiguo debate de la sección de JS por el problema anunciado anteriormente.



Nuevamente me limito a pedir ayuda en ésta sección o al menos ser escuchado en lo enunciado anteriormente.


Resubiendo mis avances con el código ha quedado de la siguiente forma:


Código:
$archivoURL = count(explode("-split-", $extraccionURL))-1; /* Aquí creamos un contador de archivos que extraemos todos ellos (con ruta completa) de la variable $extraccionURL y los separamos mediante el split*/


for ($i = 0; $i < $archivoURL; $i++) {
/* con el indice $i, podemos obtener la propiedad que desemos de cada archivo único y trabajar con él */

$urlSeparado = explode("-split-",$extraccionURL); /* Aquí asignamos a $urlSeparado cada uno de los archivos (con ruta completa) extraidos de la variable $extraccionURL */
$archivoSeparado = explode("<br>",$archivos); /* Aquí asignamos a $archivoSeparado en enlace <a href  de cada uno de los archivos extraidos de la variable $archivos */
$archivoMostrar = $archivoSeparado[$i];
$archivoEliminar = $urlSeparado[$i]; /* Gracias al recorrido de la variable $i, podemos asignar cada elemento a la variable $archivoEliminar para trabajar con ella refiriendonos a éstos archivos */


if ((isset($_POST['dato'])) == (file_exists($archivoEliminar)))
	{
		unlink($_POST['dato']);
	} else {
	echo '<div id="proceso"></div>';
	echo "<input type=\"image\" width=\"16\" height=\"16\" border =\"0\" src=\"cross.png\" onClick=\"confirmar();
	
function confirmar() {
  if(confirm('¿Realmente desea eliminar el archivo por completo? \\n\\n NOTA :: El archivo dejará de existir para siempre.')) 
  {
    conexion=HttpRequest();
    conexion.onreadystatechange = dibujar;
    conexion.open('POST','?', true);
    conexion.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    conexion.send=('dato=$archivoEliminar');

  } else {
	conexion='';
	conexion.send('dato='); 
  }
}
\"> $archivoMostrar<br /><br /><br />";

}

}

Como pueden observar (ésto deben pasarlo por alto ya que es para explicar el mecanismo) simplemente recibo una variable con varios argumentos ($archivoURL) (en éste caso son enlaces de archivos).


Extraigo los argumentos (rutas) que me indican donde está cada archivo. (son rutas completas de servidor gracias a la variable $urlSeparado... C:/servidor/htdocs/archivos/archivo.jpg)


Recorro cada una de ellas para mostrar un enlace por cada una de ellas, es decir, si al extraer la variable me he encontrado con 2 archivos, obviamente se mostrarán 2 links. (De ésto se encarga el FOR)



Pues bien, aquí empieza la miga ya que todo esto está perfecto y funciona bien.

Supongamos que yo observo en mi navegador el listado de archivos (todo correcto) y pulso sobre el enlace para eliminar mi querido archivo.... me muestra el mensaje de confirmación... acepto y.. el archivo sigue en su sitio!


Pero bueno gracias a mi querido amigo Firebug, compruebo que en el enlace que estoy pulsando aparece lo siguiente:


Código:
<input width="16" type="image" height="16" border="0" onclick="confirmar();
	
function confirmar() {
  if(confirm('¿Realmente desea eliminar el archivo por completo? \n\n NOTA :: El archivo dejará de existir para siempre.')) 
  {
    conexion=HttpRequest();
    conexion.onreadystatechange = dibujar;
    conexion.open('POST','?', true);
    conexion.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    conexion.send=('dato=C:/xampp/htdocs/PRUEBASSSSS/Subir Archivos/ultima/ARCHIVOS/9a51d41c3_3d_mago.jpg');

  } else {
	conexion='';
	conexion.send('dato='); 
  }
}" src="cross.png">

Como pueden observar, el recorrido funciona bien ya que se asigna en cada enlace la ruta completa a la variable que yo quiero pasar por POST llamada ?dato= , lo que me indica que el script PHP funciona a la perfección, o bien, no está atento a cuando pasa la variable por POST para realizar el UNLINK y eliminar el archivo.


Nose donde puede estar el problema si en la condición IF o en el propio JS pero ya me estoy volviendo un poco loco y me gustaría que alguien me pudiera ayudar... obviamente ésto será de ayuda para bastantes personas ya que encuentro muy poca documentación al menos semi-completa para realizar lo que busco.


Bueno, Gracias Nuevamente y perdonen las molestias.

Etiquetas: js
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 18:59.