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
$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
};
?>
$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!