Problema con tamaño de imagen y renombrado de ellas
3 seguidores
Hola,
Tengo un pequeño problemita con un formulario de subida a la base de datos del servidor y no es otro que este:
Actualmente no me redimensiona automaticamente la imágen al subirla desde el móvil con lo que me genera error en el formulario y no la sube.
Segundo problema y confieso que soy de apple, y es que los dispositivos iOs tienen la mania de llamar "la foto" a todas por igual, con el consiguiente problema de que el servidor detecta archivo repetido y otro error.
Es posible solucionar estos problemas de forma sencilla, un saludo y muchas gracias.
AY LO QUE SE VE PORAI
ok, gracias por todo a ver si intento corregir el problema o ver si alguien que domine php me hace un presupuesto, un saludo
fakito
Hay muchas cosas incorrectas en tu PHP y no creo que haya una solución sencilla como pedías.
Primero el nombre del archivo, el servidor únicamente comprueba si existe un archivo con el mismo nombre y te lanza el error si es así. En lugar de eso debería renombrar el archivo automáticamente con un nombre único.
Hay muchas formas de hacer eso, puedes simplemente añadirle la fecha y hora al nombre del archivo, añadirle un identificador único usando el id de la base de datos, añadirle una numeración en plan 'la_foto _1.jpg', 'la foto_2.jpg' etc, crear un nombre aleatorio o cualquier otra cosa que se te ocurra.
Segundo, el tamaño de la foto. Has de tener en cuenta que el navegador no va a redimensionar la imágen, ni en el ordenador ni en el movil, y tu código no lo redimensiona, solo comprueba su tamaño. Con PHP tienes varias formas de redimensionar imágenes en el servidor, puedes echarle un ojo en http://www.php.net/manual/en/refs.utilspec.image.php
En cualquier caso sería recomendable que algien con experiencia en PHP te echase un cable con esto, y también a corregir otros errores importantes que pueden darte problemas graves de seguridad (redirecciones con javascript, SQL injection).
AY LO QUE SE VE PORAI
Este es el insert.php
<?php
session_start();
if(isset($_SESSION['Admin'])){
$_SESSION['Admin'] = 2;
}
else{
echo "<script>alert('Usted no es el administrador.. Redireccionando..');</script>";
echo "<script> window.location='index.php'</script>";
}
include "connect.php";
$a = $_POST['satu'];
$b = $_POST['dua'];
$c = $_POST['tiga'];
$d = $_POST['empat'];
$e = $_POST['lima'];
$f = $_FILES['enam']['name'];
if (!$a || !$b || !$c || !$d || !$f)
{
echo "<script>alert('Datos incompletos, por favor introduzca todos los datos...');</script>";
echo "<script> window.location='insertForm.php'</script>";
}
else
{
if ($_FILES['enam']['size'] < 1024*1024)
{
if (file_exists('../upload/' . $_FILES['enam']['name']))
{
echo "<script>alert('Su imagen ya existe..');</script>";
echo "<script> window.location='insertForm.php'</script>";
}
else
{
if($_FILES['enam']['type'] == 'image/png'|| $_FILES['enam']['type'] == 'image/jpg'||$_FILES['enam']['type'] == 'image/jpeg')
{
$move = move_uploaded_file($_FILES['enam']['tmp_name'], '../upload/'.$f);
if($move && $e=="Foods")
{
$query = "insert into tbl_menu_restaurant(title,price,ingredients,des,type,image) values('$a','$b','$c','$d','$e','$f')";
$hasil= mysql_query($query) or die(mysql_error());
echo "<script>alert('Los datos han sido insertados con exito');</script>";
echo "<script> window.location='home.php'</script>";
}
elseif($move && $e=="Drinks")
{
$query = "insert into tbl_menu_restaurant(title,price,ingredients,des,type,image) values('$a','$b','$c','$d','$e','$f')";
$hasil= mysql_query($query) or die(mysql_error());
echo "<script>alert('Los datos han sido insertados con exito');</script>";
echo "<script> window.location='home.php'</script>";
}
elseif($move && $e=="Entrantes")
{
$query = "insert into tbl_menu_restaurant(title,price,ingredients,des,type,image) values('$a','$b','$c','$d','$e','$f')";
$hasil= mysql_query($query) or die(mysql_error());
echo "<script>alert('Los datos han sido insertados con exito');</script>";
echo "<script> window.location='home.php'</script>";
}
elseif($move && $e=="Desert")
{
$query = "insert into tbl_menu_restaurant(title,price,ingredients,des,type,image) values('$a','$b','$c','$d','$e','$f')";
$hasil= mysql_query($query) or die(mysql_error());
echo "<script>alert('Los datos han sido insertados con exito');</script>";
echo "<script> window.location='home.php'</script>";
}
}
else
{
/*echo "Upload: " . $_FILES['enam']['name'] . "<br />";
echo "Type: " . $_FILES['enam']['type'] . "<br />";
echo "Size: " . ($_FILES['enam']['size'] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES['enam']['tmp_name'] . "<br />";
*/
echo "<script>alert('No se permite esta extension de imagen..');</script>";
echo "<script> window.location='insertForm.php?id=$id_get'</script>";
}
}
}
else
{
echo "<script>alert('El archivo elegido es demasiado grande..');</script>";
echo "<script> window.location='insertForm.php?id=$id_get'</script>";
}
}
?>
AY LO QUE SE VE PORAI
Este es el update.php
$image = $_GET['image'];
if ($_FILES['enam']['size'] < 1024*1024 && $_FILES['sembilan']['size'] < 1024*1024)
{
if (file_exists('../upload/' . $_FILES['enam']['name']))
{
echo "<script>alert('Your image already exist..');</script>";
echo "<script> window.location='food.php?list=$id'</script>";
}
else
{
if($_FILES['enam']['type'] == 'image/png'|| $_FILES['enam']['type'] == 'image/jpg'||$_FILES['enam']['type'] == 'image/jpeg')
{
$move=move_uploaded_file($_FILES['enam']['tmp_name'], '../upload/'.$f);
if($id != "" && $move)
{
$query = "UPDATE tbl_menu_restaurant SET title='$a', price='$b', ingredients='$c', des='$d', type='$e', image='$f' WHERE id=$id";
$hasil= mysql_query($query) or die(mysql_error());
$filename1 = "../upload/$image";
unlink($filename1);
echo "<script>alert('Update Data Successfull..');</script>";
echo "<script> window.location='home.php'</script>";
}
else
{
echo "<script>alert('Update Data Failed..');</script>";
echo "<script> window.location='updateForm.php?list=$id'&image=$image</script>";
}
}
else
{
/*echo "Upload: " . $_FILES['enam']['name'] . "<br />";
echo "Type: " . $_FILES['enam']['type'] . "<br />";
echo "Size: " . ($_FILES['enam']['size'] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES['enam']['tmp_name'] . "<br />";
*/
echo "<script>alert('Your image not extension allows..');</script>";
echo "<script> window.location='insertForm.php?id=$id_get'</script>";
}
}
}
else
{
echo "<script>alert('Your file too big..');</script>";
echo "<script> window.location='insertForm.php?id=$id_get'</script>";
}
?>
phpninja
Pega el Php o lenguaje que estés usando para el upload de las imágenes
fakito
El problema más que en el formulario parece estar en la forma en que gestionas la imágen en el servidor, pero sin ver el código es complicado saber que puede estar pasando y como solucionarlo.
AY LO QUE SE VE PORAI
Gracias golden, me refiero a realizarlo en el lado del servidor
Usuario desconocido
Respecto al renombrado, yo utilizo (previamente y en pc) un programilla llamado Lupas Rename.
Saludos.