Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/03/2006, 09:17
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Hola,

Yo (con ayuda de cluster) he creado un sistema que sube fotos y guarda datos en mysql, lo que guarda no es la ruta de la foto, sino el nombre compelto (foto.jpg) y luego llamas a esa foto con el valo que guarda el nombre

ruta/a/foto/$nombre

bueno el script 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
  
$fotonombre=$_POST['fotonombre'];
  
$comentarios=$_POST['comentarios'];
  
$otrodato=$_POST['otrodato'];
  if (!
$fotonombre || !$comentarios || !$otrodato)
  {
      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 '/ruta/a/path/absoluto/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;
  }
  
$fotonombre mysql_real_escape_string($fotonombre);
  
$comentarios mysql_real_escape_string($comentarios);
  
$otrodato mysql_real_escape_string($otrodato);
  
$userfile_name mysql_real_escape_string($userfile_name);
//conectamos a la base de datos
  
$db mysql_connect("localhost","base_de_datos","contraseña");
//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('base_de_datos'))
  {
      
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 tabla 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 tabla values 
            ('', '"
.$fotonombre."', '".$comentarios."', '".$userfile_name."', NOW(),'".$otrodato."')"
  
$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.'

?>
La he intentado amoldar a tu gusto... quedaran cosaas por retocar.

mmmm la tabla seria asi:

id
nombre
comentarios
$userfile_name (el nombre del archivo foto.jpg)
fecha
otrodato

Saludos