Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/03/2006, 12:38
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Subir imagen crear thumbnails y eliminar imagen original

Hola,

Tengo un sistema de upload de datos que me envia datos a una BBDD y ademas sube una imagen y guarda la ruta a dicha imagen en la misma BBDD.

Esto me sirve para mostrar estos datos por ejemplo (fichas de artistas que colaboran en mi web) http://www.mindpanic.com/artistas/fi...tista.php?id=9

Ahora bien las imagenes que veis las he reducido yo a mano a 150x150 pixeles... cosa que resulta tediosa.

lo que busco es implementar este http://www.forosdelweb.com/showpost....1&postcount=73 script
en este otro pero ademas que me borre la imagen original para no ocupar datos que no uso en mi servidor.

El script de mi sistema de upload es este:
Código PHP:
<?php

  
// $userfile is where file went on webserver 
  
$userfile=$_FILES['userfile']['tmp_name'];
  
// $userfile_name Es el nombre original del archivo 
  
$userfile_name=$_FILES['userfile']['name'];
  
// $userfile_size Tamaño de en bytes
  
$userfile_size=$_FILES['userfile']['size'];
  
// $userfile_type controla el tipo mime ej: image/gif
  
$userfile_type=$_FILES['userfile']['type'];
  
// $userfile_error is any error encountered
  
$userfile_error=$_FILES['userfile']['error'];
  
// datos correspondientes a datos de texto para almacenar en mysql
  
$artnombre=$_POST['artnombre'];
  
$artbio=$_POST['artbio'];
  if (!
$artnombre || !$artbio)
  {
      echo 
'No has introducido todos los datos requeridos.<br />'
      
.'Por favor vuelve atras y rellena todas las casillas.';
      exit;
  }
  if (
$userfile_error 0)
  {
    echo 
'Problema: ';
    switch (
$userfile_error)
    {
      case 
1:  echo 'El archivo excede el: upload_max_filesize';  break;
      case 
2:  echo 'El archivo excede el: max_file_size';  break;
      case 
3:  echo 'El arcivo no se ha subido al completo';  break;
      case 
4:  echo 'No file uploaded';  break;
    }
    exit;
  }
// otro checkeo más: tiene el archivo el tipo MIME correcto?
  
$userfile_type_aceptados=array('image/jpeg','image/jpg','image/gif','image/png');
  if (!
in_array($userfile_type,$userfile_type_aceptados))
  {
      echo 
'Problema: El archivo no tiene el formato adecuado (jpeg, jpg, gif o png)';
      exit;
  } 

// pon el archivo donde quieras
  
$upfile '/home/mindpani/public_html/artistas/fotos/'.$userfile_name;

// is_uploaded_file y move_uploaded_file añadido para la version 4.0.3 de php
  
if (is_uploaded_file($userfile)) 
  {
     if (!
move_uploaded_file($userfile$upfile))
     {
         echo 
'Problema: No se ha podido mover el archivo a el directorio de destino';
         exit;
     }
  } 
  else 
  {
      echo 
'Problema: Posible ataque en el upload. Archivo: '.$userfile_name;
      exit;
  }
  
$artnombre mysql_real_escape_string($artnombre);
  
$artbio mysql_real_escape_string($artbio);
  
$userfile_name mysql_real_escape_string($userfile_name);
//conectamos a la base de datos
  
$db mysql_connect("localhost","XXXXXXXXX","XXXXXXXX");
//comprobamos conexion a la base de datos.
  
if (!$db)
  {     
      
unlink($upfile);
      echo 
'Error: No se pudo conectar con la base de datos. Por favor intentelo mas tarde.';
      exit;
  }
 if (!@
mysql_select_db('XXXXXXXXXX'))
  {
      
unlink($upfile);
      echo 
'Error: No se pudo seleccionar la base de datos. Por favor intentelo mas tarde.';
      exit;
  }
//Comprobamos si los datos ya existen.
  
$sql="SELECT COUNT(*) FROM artistas WHERE artnombre='".$_POST['artnombre']."'";
  
$resultado=mysql_query($sql) or die (mysql_error());
  
$total=mysql_result($resultado,0);
  if (
$total 0)
  {
      
unlink($upfile);
      die (
"Ese artista ya existe, no se permite duplicar datos!!");
  }
  
$query "insert into artistas values 
            ('','"
.$artnombre."', '".$artbio."', '".$userfile_name."',NOW())"
  
$result mysql_query($query);
  if (!
$result)
  {
      
unlink($upfile);
      echo 
'Error: El query ha fallado. Por favor intentelo mas tarde.';
      exit;
  } 
      echo  
mysql_affected_rows().' Datos subidos con exito a la base de datos.'

?>
Saludos