Hola.
Estoy realizando un formulario de edición el cual además de títulos, contenidos, fecha etc etc lleva imágenes las cuales las envío o edito a través de un campo múltiple. A la hora de editarlas he creado la opción que si el usuario rellena el campo archivo con nuevas imágenes al pulsar editar que primero se borren las anteriores imágenes subidas a ese id y que a la vez envie las nuevas seleccionadas, si no ha seleccionado nada pues solamente edite los campos de texto, títulos contenidos etc etc.
El formulario que uso es el siguiente:
Código HTML:
Ver original<form method="post" action="" enctype="multipart/form-data"> <label>Enlace:
</label><input type="text" name="enlace" value="<?php echo $fila->enlace ?>">
</br> <label>Título:
</label><input type="text" name="titulo_contenido" value="<?php echo $fila->titulo_contenido ?>">
</br> <label>Contenido:
</label><input type="text" name="contenido" value="<?php echo $fila->contenido ?>">
</br> <label for="imagen">Editar imagen/imagenes:
</label> <input type="file" id="archivo" name="upload[]" title="Enviar imagen" multiple="multiple" /> <br /> <input type="hidden" name="id_contenido" value="<?php echo $id_contenido; ?>" >
<input type="submit" value="Editar" name="editar">
Y el código de edición por ejemplo en la parte de imágenes sería algo así:
Código PHP:
Ver originalif(isset($_POST['editar'])){ if(count($_FILES['upload']['tmp_name']) > 0){ //Si hay más de 1 archivo seleccionado entonces borro las anteriores imágenes.
$borrar_imagen= "Delete from imagenes where id_contenido =".$id_contenido;
if(!$ejecutar_borrar_imagen)
{
echo "La imagen no se ha podido borrar. " . mysql_error(); }
else
{
echo "Imagen borrada correctamente.";
}
//Aquí va el código para subir todas las imágenes seleccionadas.
}//Fin Si hay más de 1 archivo seleccionado entonces borro las anteriores imágenes.
else{
echo "No hay archivos seleccionados, por lo tanto no borro las anteriores imágenes.";
}
}//Fin si se pulsa enviar/editar
else{
//echo "No estoy enviando";
}
En lo que se refiere al envío de imágenes me sale perfectamente y sube cuando selecciono varias pero el problema es que aun seleccionando algún archivo o incluso sin tener nada en el campo de imágenes siempre me borra las anteriores, ya que entiende que siempre hay más de un archivo seleccionado:
if(count($_FILES['upload']['tmp_name']) > 0) siempre me lo cuenta como mayor que 0.
¿Cómo podría solucionarlo?.
Saludos.