Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/09/2008, 11:42
marcinf2
 
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 461
Antigüedad: 23 años
Puntos: 1
un problema al subir archivo

gracias al aporte de PATO 12 en la seccion "aportes" tengo el siguiente script "Subir imagen con php" lo adapte un poco a lo que precisaba yo.
ahora se me presentan dos problemas:

1_ que pasa si quiero subir mas de un archivo que debo agregarle?

2_ tengo un error por ejemplo si subo un archivo que supera el tamaño permitido y/o no es de la extension permitida me avisa (esto funciona bien) pero igual me lo graba en la base de datos como hago para que no lo haga?

aqui dejo los archivos

formulario.html

Código PHP:
<HTML>
<HEAD>
<TITLE>Binario a BD</TITLE>
</HEAD>
<BODY>
<?php
if (isset($_GET['proceso'])){
echo 
$_GET['proceso']."<br>";
}
?>
<FORM enctype="multipart/form-data" method="post" action="insertar.php">
Archivo: <INPUT type="file" name="archivo" size="30">
<INPUT type="submit" name="submit" value="Subir archivo">
</FORM>
</BODY>
</HTML>
insertar.php
Código PHP:
<?php
//Primero, arranca el bloque PHP y checkea si el archivo tiene nombre.  Si no fue asi, te remite de nuevo al formulario de inserción:
if (empty($_FILES['archivo']['name'])){
header("location: formulario.php?proceso=falta_indicar_fichero"); //o como se llame el formulario ..
exit;
}

//establece una conexión con la base de datos.
$conexion mysql_connect("localhost","..","..") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("imagen",$conexion) or die("No se puede seleccionar BD"); // tu_bd es el nombre de la Base de datos .. por siaca.

// archivo temporal (ruta y nombre).
$nombre_temporal=$_FILES['archivo']['tmp_name'] ;

// leer del archvio temporal...
$contenido addslashes(fread(fopen($nombre_temporal"rb"), filesize($nombre_temporal)));

// Obtener del array FILES (superglobal) los datos del archivo .. nombre, tabamo y tipo.
$nombre=$_FILES['archivo']['name'];
$peso=$_FILES['archivo']['size'];
$tipo=$_FILES['archivo']['type'];



//restringir tamaño de archivo permitido
$tamano $_FILES 'archivo' ][ 'size' ]; // Leemos el tamaño del fichero
$tamaño_max="100000"// Tamaño maximo permitido
if( $tamano $tamaño_max){ // Comprovamos el tamaño 

//guardar en carpeta
$destino 'foto' // Carpeta donde se guardata
$sep=explode('image/',$_FILES["archivo"]["type"]); // Separamos image/
$tipo=$sep[1]; // Obtenemos el tipo de imagen que es
if($tipo == "gif" || $tipo == "jpeg" || $tipo == "bmp"){ 

//nombre aleatorio por formato de tiempo unix
$image_name=time().'.'.$tipo;

//copio al directorio especificado
move_uploaded_file $_FILES 'archivo' ][ 'tmp_name' ], $destino '/' .$image_name.'.'.$tipo);  // Subimos el archivo

}
else echo 
"el tipo de archivo no es una imagen permitida";// Si no es el tipo permitido lo decimos
}
else echo 
"El archivo supera el tamaño permitido.";// Si supera el tamaño de permitido lo decimos

//insertamos los datos en la BD.
$consulta_insertar "INSERT INTO img (id, titulo, descrip, img1, img2) VALUES ('', '', '', 'foto/$image_name', '')";
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos.");
header("location: listar_imagenes.php");  // si ha ido todo bien
exit;

?>
__________________
Marcelo Acampora
mi pagina web personal
www.destinitytravel.com