Foros del Web » Programando para Internet » PHP »

Quitar imagen del servidor con php..y modificar xml file

Estas en el tema de Quitar imagen del servidor con php..y modificar xml file en el foro de PHP en Foros del Web. hola tengo un pequeño problema...estoy creando una aplicacion en la que puedo subir un archivo de imagen al servidor....luego sobreescribir el archivo xml (con el ...
  #1 (permalink)  
Antiguo 01/08/2009, 03:02
 
Fecha de Ingreso: julio-2009
Mensajes: 11
Antigüedad: 14 años, 9 meses
Puntos: 0
Quitar imagen del servidor con php..y modificar xml file

hola tengo un pequeño problema...estoy creando una aplicacion en la que puedo subir un archivo de imagen al servidor....luego sobreescribir el archivo xml (con el texto deseado) por que todo esto nutre a una galeria flash...hasta aqui voy ok.....

Mi problema que encuentro ahora es poder tambien...hacer delete a la imagen...y a la parte del archivo xml (donde se encuentra el texto)....

Mi problema radica en que cuando "examino" con "input file" me examina la raiz del disco duro y no la del servidor....

Alguien me puede ayudar a ver como puedo hacer que el boton examinar me busque la raiz del servidor el folder "images" por ejemplo....

Mi segundo problema o duda...es saber si una ves eleminada la imagen...tambien tengo que tirar el texto del archivo xml? o no debere hacerlo por que al desaparecer la imagen ya no leera del xml el texto??

En caso de ser asi? cual es la mejor forma o la mas facil de poder "tirar" el texto del archivo xml en cuestion para que la galeria flash no lo lea y lo posicione???

Muchas gracias...a ver si hay alguien que me pueda al menos orientar en esto...
Saludos Ivan...

A continuacion los archivos q estoy usando y no me funcionan....

A continuacion los archivos q estoy usando y no me funcionan....

<html>
<head>
<title>Delete image</title>
</head>
<body bgcolor=green><br><br><br>
<h3>Escoger imagen para borrar</h3>
<form enctype=\"multipart/form-data\" method=\"post\" action=\"deleteimage.php\">
<table border=\"4\" bgcolor=\"black\">
<tr><td>
<input type=\"file\" name=\"filetodelete\" /><br /></td>
<td><input type=\"submit\" value=\"Borrar File\" /></td>
</form</table>
</body>
</html>


y a continuacion la pagina php

<html>
<head>
<title>Delete image</title>
</head>
<body bgcolor=green><br><br><br>
<h3>Escoger imagen para borrar</h3>
<form enctype=\"multipart/form-data\" method=\"post\" action=\"deleteimage.php\">
<table border=\"4\" bgcolor=\"black\">
<tr><td>
<input type=\"file\" name=\"filetodelete\" /><br /></td>
<td><input type=\"submit\" value=\"Borrar File\" /></td>
</form</table>
</body>
</html>


Creo que mi problema es que hago input file..y esto no es correcto...

Gracias desde ya a quien me pueda orientar o ayudar...

Saludos
  #2 (permalink)  
Antiguo 01/08/2009, 07:21
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Quitar imagen del servidor con php..y modificar xml file

No entiendo porque quieres usar input file. Input file es con el proposito de añadir una imagen al servidor, no borrar. Para borrar una imagen del servidor lo que tienes que usar en PHP es la funcion unlink(). Y cuando hayas borrado la imagen vas a tener que eliminar del XML la linea donde esta declarada la imagen que borraste. Porque sino el codigo va a mostrar una imagen con error.
  #3 (permalink)  
Antiguo 01/08/2009, 08:02
 
Fecha de Ingreso: julio-2009
Mensajes: 11
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Quitar imagen del servidor con php..y modificar xml file

gracias por tu respuesta....he usado input file....de burro que soy nomas...por que este input file si me sirvio para la parte de la aplicacion que subo la imagen...entonces..si "me examina" y subo el archivo.... pero he avanzado bastante ya....si me he dado cuenta que la funcion es "unlink"....y he probado algunas cosas y no me termina de funcionar del todo...he probado con un archivo que llamo "listacompleta.php" lo cual logro...que me liste los archivos de imagen...que tengo el directorio "images"....(tiene un select option puesto) y mi intencion es que al apretar un boton borrar , lo elimine del folder images....y no me funciona....
aqui paso el codigo de lo que estoy usando...a ver si tu que vero que sabes de esto me puedes decir en donde esta el error y por que no me lo borra


<html>
<head>
<title> CARPETAS Y ARCHIVOS del servidor</title>
<body>
<form action="listacompleta.php" method="POST">
<table border="2" align="center">

<?php

$carpeta= "./";

$descriptor=opendir($carpeta);
while ($entrada = readdir($descriptor))

if (is_dir($carpeta . $entrada)) {
echo ("<b><select name='delete' multiple size='2'><option> [Carpeta] " . $entrada ." </option></b><br>");
}

elseif (is_file($carpeta . $entrada)) {

echo("<b><select name='del' multiple size='2'><option> [Archivo] " .$entrada . " </option></b><br>");
}
}

closedir($descriptor);

$myFile = "/{$_POST["del"]}";
unlink($myFile);

?>

<form action="listacompleta.php" method="POST">
<table border="2" align="center">
<tr><td cospan=6 align="center">
<input type="submit" name="del" value="borrar">

</body>
</html>
<?php

$myFile = "/($_POST["del"])";

$myFile = "/($_POST["del"])";
unlink($myFile);
?>

al archivo listacompleta.php lo tengo copiado dentro del folder images que es donde tengo las imagenes...
creo ademas que tengo algo mal estructurado....

gracias por tu ayuda
saludos
  #4 (permalink)  
Antiguo 01/08/2009, 08:30
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Quitar imagen del servidor con php..y modificar xml file

Hay varias cosas que tienes que no se porque los declaras.

Primero: $carpeta= "./";
Esto indica que verifique el directorio corriente. ¿Los archivos que quieres leer se encuentra en el directorio en que esta declarado el codigo?

Segundo:
No veo que estes cerrando las etiquetas de <form> ... </form>

Tercero:
Necesito saber que te trae
Código html:
Ver original
  1. echo("<b><select name='del' multiple size='2'><option> [Archivo] " .$entrada . " </option></b><br>");
Dale click derecho del mouse en el navegador y escoge ver el codigo fuente. Y escribe lo que tienes declarado la primera vez que cargas la pagina.


Cuarto: $myFile = "/($_POST["del"])";
Te sugiero imprimir $myFile para que veas que te trae. Tambien te sugiero que lo declares de esta forma mejor
Código PHP:
Ver original
  1. $myFile = "/".$_POST["del"];

Bueno me dejas saber
  #5 (permalink)  
Antiguo 01/08/2009, 09:09
 
Fecha de Ingreso: julio-2009
Mensajes: 11
Antigüedad: 14 años, 9 meses
Puntos: 0
Gracias de nuevo...te paso a responder tus dudas

Primero...si los archivos imagenes se encuentran en el mismo directorio que "listacompleta.php"....


Aqui va el codigo fuente completo....yo uso una misma pagina para todo..quizas ahi estoy cometiendo el error, me parece, puede que lo mejor sea que una vez que "listacompleta.php" carga y me muestra los archivos que hay...y yo selecciono uno...y apreto boton "borrar"..de ahi me vaya a otra pagina...en donde ahi si hago el "unlink"...????


<html>
<head>
<title> CARPETAS Y ARCHIVOS del servidor</title>
<body>
<form action="listacompleta.php" method="POST">
<table border="2" align="center">

<b><select name='delete' multiple size='2'><option> [Carpeta] . </option></b><br><b><select name='delete' multiple size='2'><option> [Carpeta] .. </option></b><br><b><select name='del' multiple size='2'><option> [Archivo] 31052008.jpg </option></b><br><b><select name='delete' multiple size='2'><option> [Carpeta] galeria </option></b><br><b><select name='del' multiple size='2'><option> [Archivo] image1.jpeg </option></b><br><b><select name='del' multiple size='2'><option> [Archivo] keith.jpg </option></b><br><b><select name='del' multiple size='2'><option> [Archivo] listacompleta.php </option></b><br><b><select name='del' multiple size='2'><option> [Archivo] unlink.php </option></b><br><br />

<b>Warning</b>: unlink(/) [<a href='function.unlink'>function.unlink</a>]: Permission denied in <b>D:\AppServ\www\dul\uploads\listacompleta.php</b> on line <b>32</b><br />

<table border="2" align="center">
<tr><td cospan=6 align="center">
<input type="submit" name="del" value="borrar">
</form>
</body>
</html>
<br />
<b>Warning</b>: unlink(/) [<a href='function.unlink'>function.unlink</a>]: Permission denied in <b>D:\AppServ\www\dul\uploads\listacompleta.php</b> on line <b>


Y UNA VEZ QUE CARGO LISTACOMPLETA.PHP ME SALE Y ME DA ESTE ERROR QUE TE PONGO AQUI ABAJO JUSTO EN LA LINEA QUE DECLAR $MYFILE= AL $_post....

Warning: unlink(/) [function.unlink]: Permission denied in D:\AppServ\www\dul\uploads\listacompleta.php on line 50

Se supone que el $_Post["del"] me deberia estar trayendo lo que selecciono en el <select option> que el name es"del".....pero bueno esta es mi intencion ...veo que no funciona por que hay algo que hago mal...

Desde ya te agradezco tu interes en ayudarme.....

Saludos

Quizas a ti se te ocurra una manera mejor y mas civilizada de hacer esto que me estoy inventando...yo hago esto del "select option" y escojer un archivo asi a mano...por que es lo que se me ocurrio a mi...pero imagino que debe haber algun otro metodo....y quizas mas facil y menos complicado de lo que lo estoy complicando yo....

Se escuchan sugerencias...

Saludos

Última edición por GatorV; 01/08/2009 a las 12:34
  #6 (permalink)  
Antiguo 01/08/2009, 09:18
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Quitar imagen del servidor con php..y modificar xml file

Otra cosa unlink no necesita el / cuando vas a borrar un archivo en el mismo directorio. Si tu te fijas en los option no hay valor

<option value="aqui va valor">Info</option>

Segundo los select no pueden tener el mismo nombre te sugiero que en vez de hacer lo que hiciste con tu codigo
Código HTML:
Ver original
  1. $descriptor=opendir($carpeta);
  2. while ($entrada = readdir($descriptor))
  3.   if (is_dir($carpeta . $entrada)) {
  4.     echo ("<b><select name='delete' multiple size='2'><option> [Carpeta] " . $entrada ." </option></b><br>");
  5.   }
  6.   elseif (is_file($carpeta . $entrada)) {
  7.     echo("<b><select name='del' multiple size='2'><option> [Archivo] " .$entrada . " </option></b><br>");
  8.   }
  9. }
  10. closedir($descriptor);

Lo hagas de esta forma
Código HTML:
Ver original
  1. $descriptor=opendir($carpeta);
  2. echo "<b><select name='delete' multiple size='2'>";
  3. while ($entrada = readdir($descriptor))
  4.   if (is_dir($carpeta . $entrada)) {
  5.     echo ("<option value='".$entrada."'> [Carpeta] " . $entrada ." </option>");
  6.   }
  7.   elseif (is_file($carpeta . $entrada)) {
  8.     echo("<option value='".$entrada."'> [Archivo] " .$entrada . " </option>");
  9.   }
  10. }
  11. echo "</select></b><br>";
  12. closedir($descriptor);

Si te fijas escribi el value='".$entrada."' y quite el select y lo coloque fuera del while. Tratalo y me dejas saber.

Quitale a $myFile el simbolo de / debe quedar asi
Código PHP:
Ver original
  1. $myFile = $_POST["del"];

Te digo tambien que el error te lo esta causando porque tienes todo declarado en la misma pagina y cada vez que unlink trata de leer la variable $myFile no encuentra un archivo y por eso te trae el error puedes hacer esto para evitar que salga ese error

Código PHP:
Ver original
  1. if(isset($_POST["del"])){
  2.   $myFile = $_POST["del"];
  3.   unlink($myFile);
  4. }
  #7 (permalink)  
Antiguo 01/08/2009, 09:30
 
Fecha de Ingreso: julio-2009
Mensajes: 11
Antigüedad: 14 años, 9 meses
Puntos: 0
Vale mira he hecho las modificaciones que me has dicho y va mejor...pero no termina de funcionar del todo...o sea no tira el archivo y me da un error en la linea..otra ves la del "unlink"... pero el option ahora si quedo mejor..ahora todo dentro de una ventana sola...

Warning: unlink(borrar) [function.unlink]: No such file or directory in D:\AppServ\www\dul\uploads\listacompleta.php on line 36

Asi me queda el codigo completo ahora...a ver si es correcto como me lo habias dicho??

<html>
<head>
<title> CARPETAS Y ARCHIVOS del servidor</title>
<body>
<form action="listacompleta.php" method="POST">
<table border="2" align="center">

<?php

$carpeta= "./";

$descriptor=opendir($carpeta);echo "<b><select name='delete' multiple size='2'>";

while ($entrada = readdir($descriptor))

if (is_dir($carpeta . $entrada)) {

echo ("<option value='".$entrada."'> [Carpeta] " . $entrada ." </option>");

} elseif (is_file($carpeta . $entrada)) {

echo("<option value='".$entrada."'> [Archivo] " .$entrada . " </option>");
}

echo "</select></b><br>";
closedir($descriptor);


$myFile = $_POST["del"];

unlink($myFile);

?>

<table border="2" align="center">
<tr><td cospan=6 align="center">
<input type="submit" name="del" value="borrar">
</form>
</body>
</html>

Gracias otra vez....

Saludos

Disculpa anteriormente te he copiado mal el codigo es que soy nuevo en el foro y me lie....el que estoy usando es este....que es el modificado por ti...con los values fuera del while..
y el error que me da es en la linea del unlink

Warning: unlink(borrar) [function.unlink]: No such file or directory in D:\AppServ\www\dul\uploads\listacompleta.php on line 35


<html>
<head>
<title> CARPETAS Y ARCHIVOS del servidor</title>
<body>
<form action="listacompleta.php" method="POST">
<table border="2" align="center">

<?php

$carpeta= "./";

$descriptor=opendir($carpeta);
echo "<b><select name='delete' multiple size='2'>";
while ($entrada = readdir($descriptor))
if (is_dir($carpeta . $entrada)) {
echo ("<option value='".$entrada."'> [Carpeta] " . $entrada ." </option>");
}
elseif (is_file($carpeta . $entrada)) {
echo("<option value='".$entrada."'> [Archivo] " .$entrada . " </option>");
}

echo "</select></b><br>";
closedir($descriptor);

$myFile = $_POST["del"];

unlink($myFile);

?>

<table border="2" align="center">
<tr><td cospan=6 align="center">
<input type="submit" name="del" value="borrar">
</form>
</body>
</html>

gracias..disculpa..y saludos

Última edición por GatorV; 01/08/2009 a las 12:34
  #8 (permalink)  
Antiguo 01/08/2009, 11:08
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Quitar imagen del servidor con php..y modificar xml file

Lo que te indique haz el if

Código PHP:
Ver original
  1. if(isset($_POST["del"])){
  2.   $myFile = $_POST["del"];
  3.   unlink($myFile);
  4. }
  #9 (permalink)  
Antiguo 01/08/2009, 12:01
 
Fecha de Ingreso: julio-2009
Mensajes: 11
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Quitar imagen del servidor con php..y modificar xml file

Hola de nuevo....he probado lo que me dijiste...logico me olvidaba del if...lo pongo al comienzo y me da error en la linea del unlink....y cuando lo pongo donde ves abajo que esta el comentario....tambien me da error en esa linea...siempre me sale el mismo error..que no reconoce la funcion unlink....lo he probado en servidor real por las dudas a ver si era q no funcionaba a nivel local..pero me da el mismo tipo de error...

<?php
if(isset($_POST["del"])){
$myFile = $_POST["del"];
unlink($myFile);
}
?>
<html>
<head>
<title> TIRAR ARCHIVOS del servidor</title>
<body>
<form action="listacompleta.php" method="POST">
<table border="2" align="center">

<?php

$carpeta= "./";

$descriptor=opendir($carpeta);
echo "<b><select name='delete' multiple size='8'>";
while ($entrada = readdir($descriptor))
if (is_dir($carpeta . $entrada)) {
echo ("<option value='".$entrada."'> [Carpeta] " . $entrada ." </option>");
}
elseif (is_file($carpeta . $entrada)) {
echo("<option value='".$entrada."'> [Archivo] " .$entrada . " </option>");
}

echo "</select></b><br>";
closedir($descriptor);

/* if(isset($_POST["del"])){ //NO ME QUEDA CLARO SI ES AQUI QUE VA EL IF
$myFile = $_POST["del"]; //YA LO PROBE DE AMBAS MANERAS Y ME DA ERROR
unlink($myFile);
}
*/
?>

<table border="2" align="center">
<tr><td cospan=6 align="center">
<input type="submit" name="del" value="borrar">
</form>
</body>
</html>

Gracias de nuevo y saludos...
  #10 (permalink)  
Antiguo 01/08/2009, 12:08
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Quitar imagen del servidor con php..y modificar xml file

Cuando envies la informacion por post en vez de usar unlink haz un echo y verifica que te trae

Código PHP:
Ver original
  1. echo $_POST["del"];

No importa donde vaya es un valor que viene por metodo de POST por lo tanto lo puedes colocar en cualquier parte de la pagina. Pero necesito saber si envia algun dado el $_POST["del"]

Me dejas saber
  #11 (permalink)  
Antiguo 01/08/2009, 12:13
 
Fecha de Ingreso: julio-2009
Mensajes: 11
Antigüedad: 14 años, 9 meses
Puntos: 0
vale creo que vamos a dar con el error....
el $_Post me trae "borrar"...el value que le di al boton borrar.....

Acabo de probar de ponerle el valor $entrada dentro de value y no me da errores...pero tampoco me tira la imagen....

<table border="2" align="center">
<tr><td cospan=6 align="center">
<input type="submit" name="del" value="<?php ($entrada); ?>"> </form>
</body>
</html>

Saludos

Última edición por GatorV; 01/08/2009 a las 12:35
  #12 (permalink)  
Antiguo 01/08/2009, 12:35
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Quitar imagen del servidor con php..y modificar xml file

Trata escribiendo esto

Código php:
Ver original
  1. echo $_POST["delete"];

Acuerdate que tenemos que llamar el nombre del select y no el nombre del boton.
  #13 (permalink)  
Antiguo 01/08/2009, 12:38
 
Fecha de Ingreso: julio-2009
Mensajes: 11
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Quitar imagen del servidor con php..y modificar xml file

si te lo habia enviado antes...se ve que no envio bien el mensaje anterior

el echo de $_post me devuelve "borrar".....que es el value que tengo en el input del boton....lo he intentado cambiar por $entrada...que es lo que supuestamente recoge no? y no da error pero no hace nada.....selecciono...le doy al boton...y se recarga la pagina...pero el archivo sigue quedando ahi...
  #14 (permalink)  
Antiguo 01/08/2009, 12:43
 
Fecha de Ingreso: julio-2009
Mensajes: 11
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Quitar imagen del servidor con php..y modificar xml file

vale ahora el $_POST ["delete"] me devuelve "imagen1.jpg" que es la imagen que selecciono para borrar.....estamos mas cerca creo yo...solo que tampoco la borra...
  #15 (permalink)  
Antiguo 01/08/2009, 12:57
 
Fecha de Ingreso: julio-2009
Mensajes: 11
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Quitar imagen del servidor con php..y modificar xml file

Ok...ahora me funciono....eres un genio!!!! al final probe con hacer el unlink $_post["delete"]
y me tira el archivo....

el codigo me kedo asi al final
<?php
if(isset($_POST["del"])){
echo $_POST["del"];
echo $_POST["delete"];
unlink($_POST["delete"]);
}
?>

Muchas gracias Abimaelrc......
  #16 (permalink)  
Antiguo 01/08/2009, 13:05
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Quitar imagen del servidor con php..y modificar xml file

Claro esta no necesitas los echo para el codigo
  #17 (permalink)  
Antiguo 01/08/2009, 13:33
 
Fecha de Ingreso: julio-2009
Mensajes: 11
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Quitar imagen del servidor con php..y modificar xml file

Te puedo hacer una consulta mas??...ahora me falta la ultima parte y consiste en que tendria que editar el archivo xml...en un html, para que el usuario pueda seleccionar las lineas que correspondian a la imagen (hay un texto que acompaña a cada imagen)...y que luego de seleccionar se borren las lineas..y luego un boton que re-escriba el archivo xml de nuevo....

Tengo alguna duda de como empezar con esto...como leo al archivo xml y luego que se escriba sin estas lineas borradas ya manualmente?...me puedes orientar un poco???

Saludos....
  #18 (permalink)  
Antiguo 01/08/2009, 14:47
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Quitar imagen del servidor con php..y modificar xml file

Bueno hay varias formas. Verifica la guia de xml en PHP y escoge la libreria que quieras usar. Puedes usar el DOM XML de esa guia (sinceramente yo no he usado todavia esas librerias porque no me he visto en la necesidad, en algun futuro las estudio bien). Tambien lo puedes hacer con ajax. Te sugiero tambien estudiar el DOM XML que se maneja con javascript. En fin lo que te sugiero es dedicarte primero a estudiar y luego a crear tu aplicacion. Asi sales de muchas dudas antes de hacerla

Me dejas saber
  #19 (permalink)  
Antiguo 01/08/2009, 17:25
 
Fecha de Ingreso: julio-2009
Mensajes: 11
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Quitar imagen del servidor con php..y modificar xml file

Gracias por tu respuesta....y aunque te cueste creerlo, visto y viendo mi bajo performance.....acabo de terminar unos cursos...de j.s, php y mysql...y esta es la primera vez que me pongo a hacer algo solo....y si..no es lo mismo los ejercicios q tenia q hacer en el curso con el profesor al lado..que cuando me pongo por primera vez..ha hacer algo por las mias y fuera de lo que me enseñaron en si.....evidentemente ...se te olvidan muchos conceptos hasta q los vuelves a usar...me voy a a estudiar..estas guias y librerias que me pasaste...

Saludos....
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:37.