Ver Mensaje Individual
  #5 (permalink)  
Antiguo 10/06/2010, 03:07
Avatar de kalebra
kalebra
 
Fecha de Ingreso: mayo-2010
Ubicación: Marbella
Mensajes: 44
Antigüedad: 14 años
Puntos: 5
Respuesta: Como puedo subir una imagen, crear un thumbnail, insertar la ruta en la ba

Buenas, mira yo tenia un problema parecido al tuyo, tenia que subir varias fotos, generar sus miniaturas y agregar el nombre en la base de datos.

Por suerte, me echaron una gran mano aqui en el foro, te dejo el codigo con el cual subo las imagenes, genero las miminaturas e ingreso el registro en la BD.

Código PHP:
<?php
error_reporting
(E_ALL & ~E_NOTICE); 
// ------------------------------------------------------------------------------------- Iniciamos SQL para indicarle los campos
    
$sql "INSERT INTO portfolio (portfolio_Image1,portfolio_Imagen1,portfolio_Ref,portfolio_Titulo,portfolio_Link,portfolio_Descripcion) "
    
$sql .=" VALUES ";
// ------------------------------------------------------------------------------------- Indicamos el rango de numeros. 
    
$random_digit=rand(0000,9999); 
    for(
$i=0;$i<count($_FILES["fileUpload"]["name"]);$i++) 
    { 
        if(
trim($_FILES["fileUpload"]["tmp_name"][$i]) != ""
        {
// ------------------------------------------------------------------------------------- Indicamos los archivos y la ubicacion para subirlos
            
$images $_FILES["fileUpload"]["tmp_name"][$i];    
                      
            
$new_images $random_digit."-Thumb-".$_FILES["fileUpload"]["name"][$i];  
            
copy($_FILES["fileUpload"]["tmp_name"][$i],".././uploads/".$random_digit.'-'.$_FILES["fileUpload"]["name"][$i]);  
// ------------------------------------------------------------------------------------- Indicamos el tamaño de la miniatura  
            
$width=100;   
            
$size=GetimageSize($images);  
            
$height=75;  
            
$images_orig ImageCreateFromJPEG($images);  
            
$photoX ImagesX($images_orig);  
            
$photoY ImagesY($images_orig);  
            
$images_fin ImageCreateTrueColor($width$height);  
            
ImageCopyResampled($images_fin$images_orig0000$width+1$height+1$photoX$photoY);  
            
ImageJPEG($images_fin,".././uploads/".$new_images);  
            
ImageDestroy($images_orig);  
            
ImageDestroy($images_fin);  
        } 
            
$new_images = array(
            
$portfolio_Image1 $random_digit."-Thumb-".$_FILES["fileUpload"]["name"][0]);
        }    
// ------------------------------------------------------------------------------------- Concateno actuales valores , para el ej los valores de las imagenes
        
$sql .="(
    '$portfolio_Image1','"
.$random_digit.'-'.$_FILES["fileUpload"]["name"][0]."',
    '"
.$_POST["portfolio_Ref"]."',
    '"
.$_POST["portfolio_Titulo"]."',
    '"
.$_POST["portfolio_Link"]."',
    '"
.$_POST["portfolio_Descripcion"]."')";
// ------------------------------------------------------------------------------------- le agrego coma al grupo de registro y miro si no es el último grupo, 
// ------------------------------------------------------------------------------------- pues si no hago eso el insert dara error pues no debe terminar en coma el query
        
if($i count($_FILES["fileUpload"]["name"]) - 1)
          
$sql .=","
// ------------------------------------------------------------------------------------- Incluimos el archivo de conexion a MYSQL.     
 
include("./conexion.php");
// ------------------------------------------------------------------------------------- Insertamos el contenido en MYSQL.     
     
$objQuery mysql_query($sql);      
?>
Y aqui el formulario.

Código HTML:
<div style="border:#666666 solid 1px; background-color:#f4f3f3">
<table width="790" border="0">
<form enctype="multipart/form-data" action=".././includes/upload-portfolio.php" method="POST">
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td width="200">
    <div align="right">Tipo:</div></td>
    <td width="200"><select name="portfolio_Ref"> 
    <option value="">Seleccione Opcion</option>
    <option value="Diseño Web">Diseño Web</option>
    <option value="Aplicacion Web">Aplicacion Web</option>
    <option value="Logo">Logo</option>
    </td>
    <td width="190"><div align="right">Empresa:</div></td>
    <td width="200"><input name="portfolio_Titulo" type="text" value="" size="25" rows="70" /></td>
  </tr>
  <tr>
    <td><div align="right">Enlace:</div></td>
    <td><input name="portfolio_Link" type="text" value="" size="25" rows="70" /></td>
    <td><div align="left"></div></td>
    <td></td>
  </tr>
  <tr><td colspan="4"><hr noshade></td></tr>
  <tr>
    <td><div align="right">Descripcion:</div></td>
    <td colspan="3"><textarea name="portfolio_Descripcion" cols="50" rows="8"></textarea></td>
  </tr>
  <tr><td colspan="4"><hr noshade></td></tr>
  <tr>
    <td><div align="right">Imagen 01:</div></td>
    <td colspan="3"><div align="left">
      <input name="fileUpload[]" type="file" size="35" />
    </div></td>
  </tr>
  <tr>
      <td colspan="2"> 
        <div align="right">
          <input type="submit" name="Submit" value="" class="boton_agregar" />
          <input type="hidden" name="action" value="add" />
          <input type="button" value="" onClick="atras()" class="boton_atras" ></input>
      </div></td>
      <td><div align="left"></div></td>
    </tr>
      <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  </form>
 </table>
</div> 
Este es solo para una imagen, si quieres agregar mas imagenes, pues deberias de agregar mas campos en el formulario, con el mismo input name.

Código HTML:
<input name="fileUpload[]" type="file" size="35" /> 
Y agregar los campos correspondientes en la base de datos, y en el archivo PHP.

Saludos