Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/01/2009, 19:02
juanmata
 
Fecha de Ingreso: octubre-2008
Ubicación: Mexico
Mensajes: 78
Antigüedad: 15 años, 6 meses
Puntos: 1
Ayuda con subir fotos en php

Buenas tardes Aver si alguien me puede ayudar lo que pasa que quiero subir fotos en php pero aparentemente sube bien las fotos etc pero al momento de mostrarlas nos las Muestra alguien me pudiera echar una mano de antenamo muchas gracias.

asi me despliega cuando termino de subir la foto y la muestra pero sin foto alguien me podria ayudar:

Cita:
Nombre archivo: DSC01542.JPG
Tipo archivo (MIME formato): image/jpeg
Peso: 153682 bytes.


Nombre archivo: DSC01541.JPG
Tipo archivo (MIME formato): image/jpeg
Peso: 145584 bytes.


Nombre archivo: DSC01540.JPG
Tipo archivo (MIME formato): image/jpeg
Peso: 134781 byte
AQUI LES PONGO EL CODIGO FUENTE GRACIAS:


Código PHP:
CREATE TABLE archivos (
  
id int(10unsigned NOT NULL auto_increment,
  
archivo_binario blob NOT NULL,
  
archivo_nombre varchar(255NOT NULL default '',
  
archivo_peso varchar(15NOT NULL default '',
  
archivo_tipo varchar(25NOT NULL default '',
  
PRIMARY KEY  (id)
TYPE=MyISAM
Código PHP:
FORMULARIO.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>

Código PHP:
INSERTAR.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:
// No se comprueba aqui si se ha subido correctamente.
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","root","offshore") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("imagenes",$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).
$binario_nombre_temporal=$_FILES['archivo']['tmp_name'] ;

// leer del archvio temporal .. el binario subido.
// "rb" para Windows .. Linux parece q con "r" sobra ...
$binario_contenido addslashes(fread(fopen($binario_nombre_temporal"rb"), filesize($binario_nombre_temporal)));

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

//insertamos los datos en la BD.
$consulta_insertar "INSERT INTO archivos (id, archivo_binario, archivo_nombre, archivo_peso, archivo_tipo) VALUES ('', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo')";
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;
?>
Código PHP:
LISTAR_IMAGENES.PHP
<?php
    mysql_connect
("localhost","root","offshore") or die ("no se ha podido conectar a la BD");

    
mysql_select_db("imagenes") or die ("no se ha podido seleccionar la BD");

    
$sql "SELECT id,archivo_nombre,archivo_tipo,archivo_peso FROM archivos";
    
$consulta mysql_query($sql) or die ("No se pudo ejecutar la consulta");

    While (
$registro=mysql_fetch_assoc($consulta)){
        echo 
"<img src=\"ver.php?id=".$registro['id']."\">";
        echo 
"<br> Nombre archivo: ".$registro['archivo_nombre'];
        echo 
"<br> Tipo archivo (MIME formato): ".$registro['archivo_tipo'];
        echo 
"<br> Peso: ".$registro['archivo_peso']." bytes.<br><br>";
    }

?>

Código PHP:
VER.PHP
<?php
if(isset($_GET['id'])) {

    
// you may have to modify login information for your database server:
    
$conexion=mysql_connect("localhost","root","offshore") or die ("no se ha podido conectar a la BD");

    
mysql_select_db("imagenes") or die ("no se ha podido seleccionar la BD");

    
$sql "SELECT archivo_mombre,archivo_binario,archivo_tipo,archivo_peso FROM archivos WHERE id='".$_GET['id']."'";

    
$consulta mysql_query($sql,$conexion);

    
$datos mysql_result($consulta,0,"archivo_binario");
    
$tipo mysql_result($consulta,0,"archivo_tipo");
    
$nombre mysql_result($consulta,0,"archivo_nombre");
    
$peso mysql_result($consulta,0,"archivo_peso");


    
header("Content-type: $tipo");
    
header("Content-length: $peso"); 
    
header("Content-Disposition: inline; filename=$nombre"); 
 
   echo 
$datos;

}
?>

Código PHP:
VER_THUMBAIL.PHP
<?php

// OJO, sólo funciona con imagnes en formato JPEG ...

if(isset($_GET['id'])) {

    
$conexion=mysql_connect("localhost","root","offshore") or die ("no se ha podido conectar a la BD");
    
mysql_select_db("imagenes") or die ("no se ha podido seleccionar la BD");
    
$sql "SELECT archivo_binario,archivo_tipo,archivo_nombre FROM archivos WHERE id='".$_GET['id']."'";
    
$consulta mysql_query($sql,$conexion);
    
$imagen mysql_result($consulta,0,"archivo_binario");

    
// Envio cabeceras al navegador .. se indica que lo "que vá" es una imagen de formato MIME JPEG
    
Header ("Content-type: image/jpeg");

    
// Generar el thumbnail:

    // Se crea la imagen desde el campo binario de la BD
    
$img imagecreatefromstring($imagen);

    
// Tamaño del Thumbanil (de la imagen a generar ..)
    
$picsize 123;
    
    
// Se obtienen los datos del ancho y alto de la imagen.
    
$new_w imagesx($img);
    
$new_h imagesy($img);

    
// Se calcula la relación alto/ancho
    
$aspect_ratio $new_h $new_w;
    
    
// Se ajusta al nuevo tamaño
    
$new_w $picsize;
    
$new_h abs($new_w $aspect_ratio);

    
// Se crea la mascara de la imagen nueva
    
$dst_img imagecreate($new_w,$new_h);

    
// Se copia y reajusta el nuevo tamaño en la nueva imagen.
    
imagecopyresized($dst_img,$img,0,0,0,0,$new_w,$new_h,imagesx($img),imagesy($img));

    
// Se entrega al buffer de salida (navegador en este caso) la imagen en formato JPEG
    // El tercer parámetro (100) indica la calidad de la imagen: en porcentaje relación calidad/peso imagen.
    
imagejpeg($dst_img,'',100);
}

?>