Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/12/2008, 14:41
Avatar de cesarpunk
cesarpunk
 
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 4 meses
Puntos: 9
Rutina: actualizar imagen

Hola, yo utilizo siempre una rutina para poder guardar mis imagenes desde php, de esta forma:

Código PHP:
//CARGAR IMAGEN DE EMPRESA
//Nombre de la imagen
$nomfoto=$_FILES["imagen"]["name"];
//Extension de Imagen
$extension=explode(".",$nomfoto);
//Cantidad de Imagen
$cantidad count($extension)-1;
//Extension de Imagen
$extension2=$extension[$cantidad];
//Tamaño de Archivo 
$tamarchivo=$_FILES["imagen"]["size"];
  
  if(
$extension2=="jpg" || $extension2=="JPG")
  {
    if(
$tamarchivo<90000)
    {
      
$carpetas=scandir("../images/empresa");
      
$total=count($carpetas)-2;

      
$nuevofoto="E000".$total.".jpg";
      
      if(!(
copy($imagen,"../images/empresa/".$nuevofoto)))
      {
        
header("location:error_archivo.php");
      }
      else
      {
          
//Registrando foto de la empresa en la BD
        
$cadsqlproc="call foto_empresa('$nuevofoto','0')";
        
$clase->ejecutarProc($cadsqlproc);
    
        
//Buscando ID de la tabla de imagenes de la empresa
        
$cad2="select * from empresa_imagen where empresa_img_nombre ='$nuevofoto'";
        
$img=mysql_query($cad2,$c);
        while(
$row mysql_fetch_array($img)){
        
$codimagen $row["empresa_img_id"];
        }
        
//Datos del formulario    
        
$nombre $_POST['nombre'];
        
$categoria $_POST['lcategoria'];
        
$subcategoria $_POST['lsubcategoria'];
        
$direccion $_POST['direccion'];    
        
$telefono $_POST['telefono'];
        
$telefono2 $_POST['telefono2'];
        
$email $_POST['email'];
        
$website $_POST['website'];
        
$descripcion $_POST['descripcion'];
        
$fecha_enviobd date('Y-m-d H:i:s');
        
//codigo del cliente capturado del text oculto
        
$codcliente $_POST["codigo"];
        
//Registrando Empresa en la BD
        
$sql="call registra_empresa(0,'$nombre','$direccion','$telefono','$telefono2','$email','$website','$descripcion','0','$fecha_enviobd','0000-00-00','$codimagen','$categoria','$subcategoria','$codcliente')";
        
$clase->ejecutarProc($sql);
        echo 
"<meta http-equiv='Refresh' content='1;URL=anuncio_succes.php'>";
      }
    }
    else
    {
      
header("location:error_archivo.php");
    }
  }
  else
  {
    
header("location:error_archivo.php");
  } 
Y me sale perfectamente.... el problema es al querer actualizar o reemplazarla por otra imagen usando un UPDATE de mysql. Aqui va el codigo que intente ejecutar, solo use los campos requeridos para actualizar la imagen (no todos mis datos) y en caso de error me sale un mensaje, en este caso siempre me sale el "error 3"

Actualizar imagen:
Código PHP:
//CARGAR IMAGEN DE EMPRESA
//Nombre de la imagen
$nomfoto=$_FILES["imagen"]["name"];
//Extension de Imagen
$extension=explode(".",$nomfoto);
//Cantidad de Imagen
$cantidad count($extension)-1;
//Extension de Imagen
$extension2=$extension[$cantidad];
//Tamaño de Archivo 
$tamarchivo=$_FILES["imagen"]["size"];
  
  if(
$extension2=="jpg" || $extension2=="JPG")
  {
    if(
$tamarchivo<90000)
    {
      
$carpetas=scandir("../images/empresa");
      
$total=count($carpetas)-2;

      
$nuevofoto="E000".$total.".jpg";
      
      if(!(
copy($imagen,"../images/empresa/".$nuevofoto)))
      {
        
//header("location:error_archivo.php");
        
echo "error1";
      }
      else
      {
          
//codigo del cliente capturado del text oculto
        
$idempresa $_POST["codigo"];
          
//codigo de la imagen capturado del text oculto
          
$idimagen$_POST["codigoimg"];
        
          
//Actualizando foto de la empresa en la BD
        
$sql2="UPDATE empresa_imagen SET empresa_img_nombre='$nuevofoto' where empresa_img_id='$idimagen'";
        
mysql_query($sql2,$c);
    
        
//Buscando ID de la tabla de imagenes de la empresa
        
$cad2="select * from empresa_imagen where empresa_img_nombre ='$nuevofoto'";
        
$img=mysql_query($cad2,$c);
        while(
$row mysql_fetch_array($img)){
        
$codimagen $row["empresa_img_id"];
        }
        
        
//Actualizando Empresa en la BD
        
$sql="UPDATE empresa SET empresa_img_id='$codimagen' where empresa_id='$idempresa'";
        
mysql_query($sql,$c);
        echo 
"<meta http-equiv='Refresh' content='1;URL=anuncio_succes.php'>";
      }
    }
    else
    {
      
//header("location:error_archivo.php");
      
echo "error2";
    }
  }
  else
  {
   
// header("location:error_archivo.php");
   
echo "error3";
  } 
espero me puedan ayudar si esta es la manera correcta de actualizar un file. Saludos