Mi problema es que me han pasado una aplicacion que inserta, modifica, borra y muestra unas fichas que se componen de imagenes y texto, las fichas que hay en la base de datos y que habian sido insertadas antes de que yo tuviera este proyecto se muestran perfectamente (texto e imagenes) pero cuando intento insertar una nueva ficha me lo inserta bien (todos los campos de texto tienen su contenido y en los campos de las imagenes me sale '[BLOB - 15.1 KB]') pero a la hora de mostar la ficha solo me muestra los campos de texto y las imagenes no me salen, mejor dicho me sale un borde negro border='1' (que tengo puesto en los estilos para las imagenes) pero no la imagen....se supone que si en la base de datos en el campo de la imagen tiene contenido '[BLOB - 15.1 KB]' es que se ha insertado bien no?
a ver si me podeis decir algo.....gracias
os pongo el codigo que uso
input donde cargo la imagen
Código HTML:
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $_SESSION['maxsize'];?>"> <input name="situation" type="file" class="fondo_campo_insert" id="situation" value="<?php echo $_POST['situation']; ?>" maxlength="8">
Código PHP:
$_SESSION['yac_id']=mysql_insert_id(); //devuelve el ultimo yac_id del INSERT.
//TRATAMIENTO DE LAS FOTOS
require_once ('manejo_fotos.php');
$ancho_fijo = 300; //ancho de las fotos optimizadas en pixels.
$temp_foto = 'img.jpg'; //foto temporal reducida.
$campo_actual = "situation";
$control= campo_lleno($campo_actual);
if ($control==0)
{
if (tiene_extension_valida($_FILES[$campo_actual]['name']))
{ resize ($campo_actual,$ancho_fijo); //devuelve 'img.jpg'
subir_foto_sql($campo_actual,$_SESSION['yac_id'],'img.jpg');
}
else
{ $redir="<meta http-equiv=\"refresh\" content=\"5; URL=modify1.php\"><p> </p><p> </p><p> </p><p> </p><p> </p><table width=\"80%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" class=\"bd_ayuda\"><tr><td align=\"center\" valign=\"middle\"><div align=\"center\"><p> </p><p>Has seleccionado una extension de archivo no válida en el campo $campo_actual. Solo los formatos de archivo '.jpg' ó '.jpeg' estan permitidos</p></div></td></tr></table>";
print $redir;
die();
}
}
else
{
if ($control==1)
{
$redir="<meta http-equiv=\"refresh\" content=\"5; URL=modify1.php\"><p> </p><p> </p><p> </p><p> </p><p> </p><table width=\"80%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" class=\"bd_ayuda\"><tr><td align=\"center\" valign=\"middle\"><div align=\"center\"><p> </p><p>El archivo ".$_FILES[$campo_actual]['name']." que intentas subir es mayor que 200kb, selecciona otro más pequeño</p></div></td></tr></table>";
print $redir;
die();
}
}
Código PHP:
<?php
function campo_lleno ($campo)
{
$nombre = $_FILES[$campo]['name'];
if ($nombre !='')
{
if ($_FILES[$campo]['size']!=0)
{
echo "el campo esta lleno <br>";
return 0;
}
else
{ Ha sido rechazado por tamaño
return 1;
}
}
else
{ No ha seleccionado archivo alguno
return 2;
}
}
function tiene_extension_valida($nombre)
{
$extensiones=array("jpg","jpeg","JPG","JPEG");
$var=explode(".","$nombre");
$num=count($extensiones);
$valor=$num-1;
for($i=0;$i<=$valor;$i++)
{ if($extensiones[$i]==$var[1])
{ return true;
echo "tiene extension valida<br>";
break;
}
}
return false;
}
function resize ($campo_actual, $ancho_fijo)
{
// echo "foto_resize = $foto <br>";
$foto = $_FILES[$campo_actual]['tmp_name'];
//$tamaño = $_FILES["$campo_actual"]['size'];
$im = imagecreatefromjpeg($foto);
$arr=getimagesize($foto);
$ratio = $arr[0]/$ancho_fijo;
// echo "ratio = $ratio <br>";
$im2= imagecreatetruecolor($ancho_fijo,$arr[1]/$ratio);
imagecopyresampled($im2,$im,0,0,0,0,$ancho_fijo,$arr[1]/$ratio,$arr[0],$arr[1]);
imageinterlace($im2,1);
imagejpeg ($im2,'img.jpg',75);
imagedestroy ($im);
imagedestroy ($im2);
}
function subir_foto_sql ($col_name, $yac_id,$foto_temp)
{
require_once ('../configure.php');
// $redir="<meta http-equiv=\"refresh\" content=\"5; URL=fill.php\"><br>Espera, serás redireccionado<br>";
$data = "";
$userfile = $foto_temp;
// echo "userfile = $userfile <br>";
// $tamano=$_FILES["$col_name"]["size"];
$tipo="image/pjpeg";
$fp = fopen($userfile, "rb");
while(!feof($fp))
{
$data .= fread($fp, 1024);
}
fclose($fp);
$data = addslashes($data);
$data = addcslashes($data, "\0");
require_once ("../../../../Connections/db_connect.php");
mysql_select_db($_SESSION['db_name']);
$sql = "UPDATE ".$_SESSION['nombre_ficha']." SET $col_name='$data' WHERE yac_id = ".$_SESSION['yac_id']."";
// echo "UPDATE ".$_SESSION['nombre_ficha']." SET $col_name='data' WHERE yac_id = ".$_SESSION['yac_id']."<br>";
// $res=mysql_query($sql,$_SESSION['connection'])or die (print $redir. mysql_error());
$res=mysql_query($sql,$_SESSION['connection']) ;
}
?>
Código PHP:
<?php print "<img src='printimage.php?col=representative&id=".$_SESSION['yac_id']."' border='1'>"; ?>
Código PHP:
<?php
require_once ('../configure.php');
$link=mysql_connect("bd","user","password");
mysql_select_db(db);
$MainSQL="SELECT ".$_GET['col']." FROM ".$_SESSION['nombre_ficha']." where yac_id=".$_GET['id']."";
$res = mysql_query($MainSQL,$link);
$row=mysql_fetch_array($res);
$data = $row[0];
if (strlen($data)<5){
$MainSQL="SELECT img FROM temp where id=1";
$res = mysql_query($MainSQL,$link);
$row=mysql_fetch_array($res);
$data = $row[0];
}
$tipo="image/jpeg";
header("Content-Type: ". $tipo ."\n");
header("Content-Transfer-Encoding: binary\n");
header("Content-length: " . strlen($data) . "\n");
print $data;
?>