Foros del Web » Programando para Internet » PHP »

Limitar tamaño de foto al subir al servidor

Estas en el tema de Limitar tamaño de foto al subir al servidor en el foro de PHP en Foros del Web. Buenas, tengo una duda. tengo un script para subir fotos al servidor. he estado mirando, pq me gustaria limitar la subida de archivos. mi duda ...
  #1 (permalink)  
Antiguo 24/02/2005, 09:56
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 15 años, 11 meses
Puntos: 3
Limitar tamaño de foto al subir al servidor

Buenas, tengo una duda. tengo un script para subir fotos al servidor. he estado mirando, pq me gustaria limitar la subida de archivos. mi duda esta con la funcion size. tengo lo siguiente:

$tamanio=$_FILES['imagen']['size'];
if (is_uploaded_file($_FILES['imagen']['tmp_name'])) {
//revisamos que sea jpg
if ($_FILES['imagen']['type'] == "image/jpeg" || $_FILES['imagen']['type'] == "image/pjpeg") && ($tamanio<500){
//nombre de la imagen
$foto1 = time()."-1.jpg";

no me da error, pero no me sube la fotos.mis duda son 2:

es correcto este codigo?
como van el numero del tamaño? es decir, 500 seria una foto de 50kb? es asi?

salu2
  #2 (permalink)  
Antiguo 24/02/2005, 10:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El valor que arroja el "size" son bytes .. (1 Kbyte = 1024 bytes .. ) así que 50 Kbytes son 51200 bytes ...

Por otro lado .. eso mismo lo puedes "forzar" o limitar tambien en el HTML del formulario de upload .. Concretamente con la variable (constante?): MAX_FILE_SIZE .. (iguamente expresado en bytes).

<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />


Un saludo,
  #3 (permalink)  
Antiguo 24/02/2005, 10:38
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 15 años, 11 meses
Puntos: 3
gracias cluster. aclarado el tema de los bytes.

otra pregunta, cuando limitas el MAX_FILE_SIZE con un campo oculto, automaticamente se limita el tamaño? o hay que hacer algun if a la hora de subir el archivo??

salu2
  #4 (permalink)  
Antiguo 24/02/2005, 11:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues .. realmente no sé como funciona .. creo que ayuda en la decisión del tamaño del archivo (sin que esperar a que suba todo el archivo al servidor? (ahí no sé...)) .. pero no está de más la última validación con tu "if()" en el script php de proceso.

Un saludo,
  #5 (permalink)  
Antiguo 24/02/2005, 11:22
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 15 años, 11 meses
Puntos: 3
ya he conseguido algo cluster, te cuento. tengo un form en el cual envio unos campos de texto para insertar en un bd. al hacer envio, hago lo siguiente:

if(isset($_POST['submit'])){
$error = false;
$tamanio=$_FILES['imagen']['size'];

if ($tamanio>10240){
echo "Tamaño incorrecto";}

// si hay imagen.
if (is_uploaded_file($_FILES['imagen']['tmp_name'])) {
//revisamos que sea jpg
if ($_FILES['imagen']['type'] == "image/jpeg" || $_FILES['imagen']['type'] == "image/pjpeg"){
//nombre de la imagen
$foto1 = time()."-1.jpg";

//movemos la imagen.
move_uploaded_file($_FILES['imagen']['tmp_name'], "../fotografias/".$foto1);
}
} else {
//imagen no se pudo subir o no seleccionaron.
$error=true;
$foto1 = "N/A";
}//fin file upload.
//continuamos con el insert.
//si hay error no hay imagen.


//quitamos los enter ya que en flash se ven dobles.
$observaciones = str_replace("\r","",$_POST['observaciones']);
//fecha
$fecha1 = $_POST['aa'].$_POST['mm'].$_POST['dd'];
//$fecha = explode ("", $fecha1);
$campos = "zona,tipo,planta,hab,precio,m2,observaciones,fech a,foto1,foto2";
$valores = "'$zona','$tipo','$planta','$hab','$precio','$m2', '$observaciones','$fecha','$foto1','$foto2'";
//nos conectamos a la bd.
$cnx = conectar();
$res = mysql_query("INSERT INTO pisos ($campos) VALUES($valores)") or die (mysql_error());


el problema q tengo es q me sale como que se ha insertado el piso correctamente (el echo q dice q esta ok, y al lado pone lo de tamaño incorrecto). como puedo hacer para que lo del tamaño salga antes de insertar en la base de datos?

salu2
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 02:51.