Foros del Web » Programando para Internet » PHP »

PHP OO Validar imagenes guardadas

Estas en el tema de Validar imagenes guardadas en el foro de PHP en Foros del Web. Hola, espero me puedan ayudar con esta pequeña duda que tengo: utilizo esta sentencia para validar que sean archivos de imagen y me funciona pues ...
  #1 (permalink)  
Antiguo 23/04/2014, 15:02
Avatar de Landa11  
Fecha de Ingreso: febrero-2014
Ubicación: En algún lugar de mi oficina
Mensajes: 148
Antigüedad: 10 años, 2 meses
Puntos: 1
Pregunta Validar imagenes guardadas

Hola, espero me puedan ayudar con esta pequeña duda que tengo:

utilizo esta sentencia para validar que sean archivos de imagen y me funciona pues guarda las imagenes sin problemas

Código PHP:
Ver original
  1. if($_FILES['imagen']['type'] != 'image/jpeg' && $_FILES['imagen']['type'] != 'image/png')
  2. {
  3.     echo "<meta http-equiv='REFRESH' content='0 ; url=index.html'>
  4.            <script>
  5.                alert('Error con el archivo seleccionado. Ingrese una imagen válida');
  6.            </script>";
  7. }
  8. else
  9. {
  10. $agregar = mysql_query("INSERT INTO lista_productos (id_sucursal, cantidad, producto, marca, modelo, observaciones, categoria, id_imagen, imagen) VALUES ('$id_sucursal', '$cantidad', '$producto', '$marca', '$modelo', '$observaciones', '$categoria', '$id_imagen', '$ruta')");

Pero al momento de querer cambiar la imagen por otra ya no me deja hacerlo y si se lo quito me guarda todo tipo de archivo que inserte.

Hay alguna manera para poder validar de nuevo?

Código PHP:
Ver original
  1. $ruta="imagenes";
  2. $archivo=$_FILES['nuevaImagen']['tmp_name'];
  3. $nombreArchivo=$_FILES['nuevaImagen']['name'];
  4. move_uploaded_file($archivo,$ruta."/".$nombreArchivo);
  5. $ruta=$ruta."/".$nombreArchivo;
  6.  
  7. $actualizar=mysql_query("UPDATE lista_productos SET imagen='".$ruta."' WHERE id_imagen='".$id_imagen."'", $conexion);
  8.  
  9. if($actualizar)
  10. {
  11.     echo "
  12.     <html>
  13.     <head>
  14.     <meta http-equiv='refresh' content='0 ; url=verDatos.php'>
  15.     <script>
  16.     alert('Actualizada con éxito!');
  17.     </script>
  18.     </head>
  19.     </html>
  20.     ";
  21. }
__________________
Ayudando a la gente con nuestros códigos para poder tener el conocimiento adecuado y ser libres!
  #2 (permalink)  
Antiguo 23/04/2014, 20:02
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Validar imagenes guardadas

Lo primero, es que no puedes confiar plenamente en el valor de $_FILES['imagen']['type'], porque es un dato enviado por el navegador y, por tanto, manipulable.

En todo caso, una solución de mucho menor riesgo es verificar la extensión.

Lee esto: http://www.forosdelweb.com/f18/aport...8/#post4265376

Luego, eso de que ya no te deje cambiar la imagen por otra, debes ser más específico, si se trata de sobreescribir una imagen (mismo nombre) o actualizar la tabla.

Para sobreescribir, creo que es mejor primero eliminar el archivo existente (con unlink()) y luego usar move_uploaded_file() para evitar errores.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 24/04/2014, 08:29
Avatar de Landa11  
Fecha de Ingreso: febrero-2014
Ubicación: En algún lugar de mi oficina
Mensajes: 148
Antigüedad: 10 años, 2 meses
Puntos: 1
Respuesta: Validar imagenes guardadas

Es hacer un UPDATE de la tablas para quitar la imagen existente y guardar una nueva con otro tipo de nombre.

Voy a checar el move_uploaded_file aunque cuando lo agregué me mandaba algunos errores, y checaré el documento para darme más ideas.

Gracias Triby por tu respuesta!!!!
__________________
Ayudando a la gente con nuestros códigos para poder tener el conocimiento adecuado y ser libres!

Etiquetas: Ninguno
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 15:32.