Título: Script para mostrar foto recientemente subida Publicado por: sReOn_1R en 25 Agosto 2010, 22:02 pm Hola estoy intentando hacer un registro en el que se necesita enviar un archivo (una foto) y que al cambiar el input file se muestra la imagen en un iframe...
para el formulario tengo algo como esto: <form action="uploadphoto.php" target="iframe"> <input type='file' name='file' id='foto' onchange='javascript: submit();'/> </form> Pero bueno, lo que consigo es cambiar la foto y que se muestre,pero para esto lo que hago es guardarlo en el servidor y mostrar esa imagen. Hasta ahí lo tengo todo bien, pero quiero que si el usuario prefiere cambiar otra foto, guarde esa foto, borre la imagen anterior y se muestre esa foto. uploadphoto.php: Citar <?php $rutatempfile lo utilizo para cuando inicie el script poder saber si ya se ha subido una foto anteriormente y borrarla..$tempdir = "temporary_photos/"; /*--------------------FUNCTIONS---------------------------------- -----------------------------------------------------------------*/ function imprimir_file() { //Comprobamos si se ha mandado un archivo es decir un tmp_name if (isset($_FILES['file']['tmp_name'])) { //Metemos toda la ruta del archivo en una variable,para cada vez que se realice este script comprobar si hay un archivo anterior,y si lo hay,lo borra. $GLOBALS['rutatempfile'] = $GLOBALS['tempdir'].$_FILES['file']['name']; //Si se ha mandado, lo movemos a una carpeta definida para fotos temporales if (move_uploaded_file($_FILES['file']['tmp_name'],$GLOBALS['rutatempfile'])) { //Ahora imprimimos toda esa ruta,es decir,imprimimos la imagen,en lo que será el iframe echo "<img src='".$GLOBALS['rutatempfile']."'>"; } else { echo "Algun error ha ocurrido al mover el archivo"; }; } else { echo "No has enviado ningun archivo"; }; }; /*-------------------------END FUNCTIONS------------------------ ----------------------------------------------------------------*/ //Si no existe esa variable,no tiene una imagen que tiene que borrar if ($rutatempfile) { //Parece que se ha quedado una imagen temporal,tiene que ser borrada. echo "Se va a borrar el archivo: <br><img src='".$rutatempfile."'>"; if (unlink($rutatempfile)) { echo "Se ha borrado el anterior"; } else { echo "No se ha podido borrar por algo"; }; } else { //Llamamos a la funcion para imprimir la variable file imprimir_file(); echo $rutatempfile; //Se consigue mostrar la ruta de la imagen por lo que la variable es global }; ?> bueno me imagino que viendo el script y con la explicacion ha quedado claro espero que me podais ayudar..Gracias! Título: Re: Script para mostrar foto recientemente subida Publicado por: sReOn_1R en 25 Agosto 2010, 22:31 pm Bueno según estoy pensando puede que ser que no guarde las variables de una ejecución del script a otra,¿no? es lo unico que se me ocurre asi que para no colapsar el servidor con fotos temporales,sería hacer un cron para que cada cierto tiempo,borre los archivos...
¿Estoy en lo cierto? :-/ Título: Re: Script para mostrar foto recientemente subida Publicado por: Mr. Crowley en 25 Agosto 2010, 22:33 pm Si los archivos tienen el mismo nombre entonces, generalmente, le va a cargar el primero que subio. Se guarda en la cache del navegador. Ya me ha pasado y es un dolor de bolas.
Título: Re: Script para mostrar foto recientemente subida Publicado por: neopuerta360 en 7 Septiembre 2010, 02:36 am Estas usando un registro y reconocimiento de usuarios por que yo tengo un codigo para esso que no usa base de datos sql.
|