Foros del Web » Programando para Internet » PHP »

upload de imagenes y resizer

Estas en el tema de upload de imagenes y resizer en el foro de PHP en Foros del Web. hola como estan? bueno mi problema es que estoy haciendo un catalogo para una empresa y quiero que los empleados puedan actulizar los nuevos productos ...
  #1 (permalink)  
Antiguo 21/11/2006, 12:20
 
Fecha de Ingreso: junio-2005
Mensajes: 146
Antigüedad: 18 años, 10 meses
Puntos: 0
upload de imagenes y resizer

hola como estan?

bueno mi problema es que estoy haciendo un catalogo para una empresa y quiero que los empleados puedan actulizar los nuevos productos ellos mismo como un cms:

quiero poder subir una imagen al servidor y que este le cambie el tamaño a uno predeterminado y luego lo salve en un directorio del server y guarde el url en un campo de mi base de datos...

gracias de antemano!!
__________________
Edgar Nadal
  #2 (permalink)  
Antiguo 21/11/2006, 12:35
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 10 meses
Puntos: 19
De acuerdo

con este codigo podras subir las imagenes al servidor
Código PHP:
<?php

/*
Para que este script funcione tienen que estar activadas las extensiones
php_mbstring.dll y php_exif.dll. Para eso tienes que quitar el ; 
antes de extension=php_mbstring.dll y extension=php_exif.dll en la php.ini.

Los archivos uploader.html y uploader_process.php tienen que estar en el
mismo directorio

En la variable $uploaddir hay que introducir el directorio donde van los archivos.
En la variable $cant hay que poner la cantidad maxima de archivos que se pueden subir.
En la variable $tam se pone el tamaño maximo de un archivo.

*/

//directorio donde tienen que ir los archivos
$uploaddir "images/";

//cuantos archivos se pueden subir?
$cant 1;

//tamaño maximo permitido
$tam 90000;

//función que evalua el tamaño de los archivos
function check_size($archivo)
{
    global 
$tam;
    if(!(
$archivo <= $tam))
    {       
    return 
false;
    }   
}

//funcion que evalua el tipo de archivo
function check_tipo($archivo)
{
   if(
exif_imagetype($archivo) != (IMAGETYPE_JPEG || IMAGETYPE_GIF || IMAGETYPE_PNG))
   {
      return 
false;
   }
}

//compruebo los archivos
for ($i 0$i <= $cant 1; ++$i)
{
    if(
check_size($_FILES['foto']['size'][$i]) === false)
    {
        echo 
"El tamaño de por lo menos un archivo supera el limite permitido.";
    }
    

    elseif ((!(
$_FILES['foto']['tmp_name'][$i] == "")) && (check_tipo($_FILES['foto']['tmp_name'][$i]) === false))
    {
       
            echo 
"Por favor compruebe los archivos!<BR>Solo se admiten archivos del tipo .gif, .jpg o .png.";
        
    }

    
    elseif (!(
$_FILES['foto']['tmp_name'][$i] == ""))
    {
        
move_uploaded_file($_FILES['foto']['tmp_name'][$i], $uploaddir $_FILES['foto']['name'][$i]);
        echo 
"El archivo <B>"$_FILES['foto']['name'][$i] ."</B> ha sido cargado al servidor.<br><br>";
    }
}

?>

y deberas crear un formulario del siguiente tipo
Código HTML:
<FORM ENCTYPE="multipart/form-data" METHOD="post" ACTION="uploader_process.php">
	<TABLE border="0">
		<TR>
			<TD WIDTH="140">Foto1:</TD>
			<TD WIDTH="200"><input type='file' name='foto[]'></TD>
		</TR>
		<TR>
			<TD WIDTH="140"><input type=reset value='borrar todo'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="insertar" name='insertar'></TD>
		</TR>
	</TABLE>
	</FORM> 
Solo modificas la variable $cant en el php y agregas mas campos para subir archivos al formulario si es que quieres subir mas de una foto por vez

espero haberte ayudado
  #3 (permalink)  
Antiguo 21/11/2006, 12:40
 
Fecha de Ingreso: junio-2005
Mensajes: 146
Antigüedad: 18 años, 10 meses
Puntos: 0
muchas gracias korg1988

alguien me puede ayudar con lo de cambiar el tamño del archivo y guardar el url en la bd???
__________________
Edgar Nadal
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 18:35.