PHP+MSSQL - Inserir imagens bd

Boas!
Desculpa a minha tontice... Ok eu chamo o http://localhost/gest/include/visualizar.php?id=2134 e a imagem aparece...

Mas vou explicar tudo então...
Tenho na pasta gest a pasta include onde tenho o ficheiro equipamento.php que chama o equipamento_view.php que por sua vez chama o visualizar.php.

O equipamento.php é este:
Código:
<?php
header("Pragma: no-cache");
session_start();
include "../files/methods.php";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "[URL]http://www.w3.org/TR/html4/loose.dtd[/URL]"> 
<html>
<head>
 <title>:: <?php if (isset($_SESSION['user'])) echo $_SESSION['user']."@"; ?>sigiimm ::</title>
<meta name="generator" content="TSW WebCoder">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" >
<link href="<?php echo $http.$_SERVER['HTTP_HOST'].$dir; ?>/style/style.css" rel="stylesheet" type="text/css">
<?php include "../javascript/js.php"; ?>
</head>
<body>
<div id="header">
 <a href="index.php"><div id="header-left"></div></a>
 <div id="header-right">&nbsp;</div>
</div>
<div id="wrap">
<?php
include "../files/db.php";
$_SESSION['id_tipoentidade'] = $id_tipofornecedores;
$_SESSION['entidade'] = "fornecedor";
if ($permissao=verificaPermissao('equipamento')){
if(isset($_POST['search']))$search = $_POST['search'];
if (isset($_POST['action']) and $_POST['action'] =='new')
{ include "equipamento_new.php";}
else if (isset($_POST['action']) and $_POST['action'] =='edit')
{ include "equipamento_edit.php";}

[COLOR=red]else if (isset($_POST['action']) and $_POST['action'] =='view')
{ include "equipamento_view.php";}[/COLOR]
[COLOR=red]
[/COLOR]else if (isset($_POST['action']) and $_POST['action'] =='list')
{ include "equipamento_list.php";}
else if (isset($_POST['action']) and $_POST['action'] =='view2')
{ include "equipamento_img.php";}
else
{ 
$form = "equipamentoform";
if(isset($_POST['page']))$intPageNo = $_POST['page']; else $intPageNo = 1;
if(isset($search)){
  $strFilter = " equidesignacao LIKE '%".$search."%' and localizacao.id_localizacao = equipamento.id_localizacao AND tipoequipamento.id_tipoequipamento = equipamento.id_tipoequipamento AND marca.id_marca = equipamento.id_marca";
  $intPageNo = 1;
  $RegistosPorPagina = $totalregistospesquisa;  
  }
  else  
   $strFilter = " localizacao.id_localizacao = equipamento.id_localizacao AND tipoequipamento.id_tipoequipamento = equipamento.id_tipoequipamento AND marca.id_marca = equipamento.id_marca";
?>
<div id="navegacao">
<form name="search" action="<?php echo $_SERVER['HTTP_X_REWRITE_URL']; ?>" method="post" >
<table>
<tr><td style="text-align:center; padding-top:2px;">
&nbsp;&nbsp;<a href="../index.php"><img src="../images/Retroceder.png" alt="Retroceder" height="30" width="30" border="0" onMouseover=src="../images/RetrocederOn.png"; onMouseout=src="../images/Retroceder.png";></a>&nbsp;&nbsp;
</td>
</tr>
</table>
</form>
</div>
<div id="content">
<form name="<?php echo $form; ?>" action="<?php echo $_SERVER['HTTP_X_REWRITE_URL']; ?>" method="post" >
<input type="hidden" name="action" value="">
<input type="hidden" name="id" value="">
<input type="hidden" name="page" value="">
<input type="hidden" name="opt" value="">
<?php 
if(isset($_POST['activo'])) echo '<input type="hidden" name="activo" value="'.$_POST['activo'].'">'; 
if(isset($search)) echo '<input type="hidden" name="search" value="'.$search.'">';
?>
<table cellspacing="2" cellpadding="2" class="tabela" align="center">
 <tr><td class="dados1strow">DesignaþÒo</td><td class="dados1strow">Marca</td><td class="dados1strow">LocalizaþÒo</td><td colspan="5" class="dados" style="text-align:center;">&nbsp;</td></tr>
 <?php
 $strFields = "id_equipamento, equidesignacao, marcadesignacao, localizacao.localdesignacao, tipoequipamento.tequidesignacao, equipamento.id_tipoequipamento";
 $strPK = "id_equipamento";
 $strTables = "equipamento, localizacao, tipoequipamento, marca";
 $strSort = "localdesignacao, equidesignacao";
 $intPageSize = $RegistosPorPagina;
 $query = mssql_init("spro_geral_SelectPaginas",$link); 
 mssql_bind($query, "@strFields", $strFields, SQLVARCHAR); 
 mssql_bind($query, "@strPK", $strPK, SQLVARCHAR);   
 mssql_bind($query, "@strTables", $strTables, SQLVARCHAR);       
 mssql_bind($query, "@intPageNo", $intPageNo, SQLINT2);         
 mssql_bind($query, "@intPageSize", $intPageSize, SQLINT2);           
  mssql_bind($query, "@strFilter", $strFilter, SQLVARCHAR);
  mssql_bind($query, "@strSort", $strSort, SQLVARCHAR);
 $result = mssql_execute($query);
 while ([EMAIL="$row=@mssql_fetch_array($result"]$row=@mssql_fetch_array($result[/EMAIL]))
 {
    if(isset($_POST['activo']) and $row['0'] == $_POST['activo']) $class="dadosnew";
    else $class="dados";
  ?>
 <tr class="<?php echo $class;?>">
   <td class="<?php echo $class;?>"><?php echo bb($row['1']);?>&nbsp;</td>
  <td class="<?php echo $class;?>"><?php echo bb($row['2']);?>&nbsp;</td>
    <td class="<?php echo $class;?>"><?php echo bb($row['3']);?>&nbsp;</td>   
    <?php if ($permissao == 1) { ?>
    <td class="<?php echo $class;?>"><a href="javascript: submitform(2,<?php echo $row['0']; ?>,'<?php echo $form; ?>',1,<?php echo $intPageNo; ?>)"><img src="../images/Alterar.png" alt="Alterar" height="20" width="20" border="0" onMouseover=src="../images/AlterarOn.png"; onMouseout=src="../images/Alterar.png";></a></td>
    <?php } 
    if ($permissao == 1) { ?>
    <td class="<?php echo $class;?>"><a href="javascript: submitform(2,<?php echo $row['0']; ?>,'<?php echo $form; ?>',2,<?php echo $intPageNo; ?>)"><img src="../images/Utilizadores.png" alt="Utilizadores" height="20" width="20" border="0" onMouseover=src="../images/UtilizadoresOn.png"; onMouseout=src="../images/Utilizadores.png";></a></td>
    <?php } ?>
    <td class="<?php echo $class;?>"><a href="javascript: submitform(4,<?php echo $row['0']; ?>,'<?php echo $form;?>',<?php if(isset($_POST['opt']) and $_POST['opt'] == '') echo "1"; else echo "0"; ?>,<?php echo $intPageNo; ?>)"><img src="../images/VerFicha.png" alt="Ver Ficha" height="20" width="20" border="0" onMouseover=src="../images/VerFichaOn.png"; onMouseout=src="../images/VerFicha.png";></a></td>      
    <?php if ($permissao == 1) { ?>
    <td class="<?php echo $class;?>">    
    <a href="javascript: submitform(8,<?php echo $row['0']; ?>,'<?php echo $form; ?>',0,<?php echo $intPageNo; ?>)"><img src="../images/Foto.png" alt="Fotografias" height="20" width="20" border="0" onMouseover=src="../images/FotoOn.png"; onMouseout=src="../images/Foto.png";></a>  
    </td>
    <?php if ($permissao == 1) { ?>
    <td class="<?php echo $class;?>">
    <?php }?>
    <?php if (in_array($row['id_tipoequipamento'],$array_ids_tipoequipamentocomsoftware)){ ?>
    <a href="javascript: submitform(2,<?php echo $row['0']; ?>,'<?php echo $form; ?>',3,<?php echo $intPageNo; ?>)"><img src="../images/Software.png" alt="Software" height="20" width="20" border="0" onMouseover=src="../images/SoftwareOn.png"; onMouseout=src="../images/Software.png";></a>  
    <?php } 
    else if (in_array($row['id_tipoequipamento'],$array_ids_tipoequipamentocomconsumiveis)){ ?>
    <a href="javascript: submitform(5,<?php echo $row['0']; ?>,'<?php echo $form; ?>',2,<?php echo $intPageNo; ?>)"><img src="../images/Estado.png" alt="Consumiveis" height="20" width="20" border="0" onMouseover=src="../images/EstadoOn.png"; onMouseout=src="../images/Estado.png";></a>  
    <?php } ?>    
    &nbsp;</td>
    <?php } ?>
    </tr>
    </form>   
 <?php }  ?>
  
 <tr><td colspan="9" class="dados" style="text-align:center;">
  <?php 
  $query = mssql_init("spro_geral_contaPaginas",$link);
 mssql_bind($query, "@strPK", $strPK, SQLVARCHAR);   
 mssql_bind($query, "@strTables", $strTables, SQLVARCHAR);       
  mssql_bind($query, "@strFilter", $strFilter, SQLVARCHAR);
 $result = mssql_execute($query);     
 $row=mssql_fetch_array($result); 
 $t = paginacao($row['TOTAL']);
  // Calculando pagina anterior
  $menos = $intPageNo - 1;
  // Calculando pagina posterior
  $mais = $intPageNo + 1;
  $pgs = ceil($t-1);
      
  if($pgs > 1 )
  { 
     echo "<a href=\"javascript: submitform(0,0,'".$form."',0,1)\">Inicio&nbsp;&nbsp;</a> ";
    if($menos>0)
      echo "<a href=\"javascript: submitform(0,0,'".$form."',0,".$menos.")\">Anterior</a> ";
    else
      echo "&nbsp;&nbsp;Anterior ";
  
    if (($intPageNo-1) < 1 )
      $anterior = 1;
    else
      $anterior = $intPageNo-1;
 
    if (($intPageNo+1) > $pgs )
      $posterior = $pgs;
    else
      $posterior = $intPageNo + 1;
  for($i=$anterior;$i <= $posterior;$i++)
  
    if($i != $intPageNo)
      echo "&nbsp;&nbsp;<a href=\"javascript: submitform(0,0,'".$form."',0,".$i.")\"><strong>".$i."</strong>";
    else
      echo "&nbsp;&nbsp;<u>".$i."</u>";
    
    if($mais <= $pgs)
      echo " &nbsp;&nbsp;<a href=\"javascript: submitform(0,0,'".$form."',0,".$mais.")\">Proxima</a>";
    else
      echo " &nbsp;&nbsp;Proxima";
  
  }
  else
    echo "[ 1 ]";
   
  if($pgs > 1)
    echo "&nbsp;&nbsp;<a href=\"javascript: submitform(0,0,'".$form."',0,$pgs)\">Fim</a> ";
      
  ?>   
  </td></tr>  
</form>   
</table>
<?php } 
} 
else
 echo "Acesso Negado. Contacte o administrador"; ?>
</div>
<div id="navegacao">
  <p class="title1"><BR>&nbsp;&nbsp;<?php echo $_SESSION['user']; ?>@ equipamento</p>
</div>
</div>
<div id="footer"><div id="footer-left"></div><div id="footer-right"></div></div>
</body>
</html>


O equipamento_view.php:
Código:
<div id="navegacao">
<form name="retroceder" action="./equipamento" method="post">
<?php if(isset($_POST['id']))
  echo "<input type=\"hidden\" name=\"activo\" value=\"".$_POST['id']."\">";
  if(isset($search)) echo '<input type="hidden" name="search" value="'.$search.'">';
?>
<input type="hidden" name="page" value="<?php echo $_POST['page'];?>">
<input type="hidden" name="id" value="<?php echo $id;?>">
<input type="hidden" name="page" value="<?php echo $_POST['page'];?>">
<input type="hidden" name="id" value="<?php echo $id;?>">
</form>
<table>
<tr><td style="text-align:center; padding-top:2px;">
&nbsp;&nbsp;<a href="./equipamento.php"><img src="../images/Retroceder.png" alt="Retroceder" height="30" width="30" border="0" onMouseover=src="../images/RetrocederOn.png"; onMouseout=src="../images/Retroceder.png";></a>
</td></tr>
</table>
</div>

<div id="content">
<?php
if(isset($_POST['id']))
 $id_equipamento = $_POST['id'];
 
  $query = mssql_init("spro_equipamento_devolveequipamento",$link); 
  mssql_bind($query, "@id_equipamento", $id_equipamento, SQLINT2);
  $result = mssql_execute($query);
  [EMAIL="$row=@mssql_fetch_array($result"]$row=@mssql_fetch_array($result[/EMAIL]);
?>
<table class="dados" align="center" width="50%">
<tr class="title4">    
 <td align="left" colspan="2">Ficha de equipamento</td>
</tr>
</table>
<BR>
<table class="dados" align="center" width="50%">
<tr>
<td>
<table class="img" align="center" width="100%">
<tr>
  <?php
  $query  = "SELECT id, name FROM fotos WHERE id_equipamento = '$id_equipamento' ";
  $result = mssql_query($query) or die('Error, query failed');
  
  $contador=0;
  while ($row = mssql_fetch_array($result))
  {
        $fotos[$contador] = $row['name']; ?>
        [COLOR=red]<td class="img_td" align="center" >
        <img src="./visualizar.php?id=<?=$fotos[$contador]?> ">
        </td>
[/COLOR]        
        <?php 
        $contador++;
  }
  if(mssql_num_rows($result) == 0)
  {
    
    echo"
    <td class=\"img_td\" align=\"center\" >
   <img src=\"../images/noFoto.jpg\" height=\"100px\" width=\"100px\" >
    </td>";      
  } 
    
  ?>  
   
</tr>
</table>
</td>
</tr>
</table>
<p class="title2"><a href="../files/ficha_equipamento.php?id_equipamento=<?php echo $id_equipamento;?>" target="BLANK"><img src=../images/printer.gif border=0>Imprimir ficha de equipamento</a></p>

O visualizar.php:
Código:
<?
$dbname = 'xxx';
$link=mssql_connect("xxx","xxx","xxx");
mssql_select_db($dbname,$link) or die ("01: Erro no acesso Ó Base de Dados. Por favor tente mais tarde.".mssql_get_last_message());
if(isset($_GET['id']))
{
 $id      = $_GET['id'];
 $query   = "SELECT name, type, size, content FROM fotos WHERE id = '$id'";
 $result  = mssql_query($query) or die('Error, query failed');
 list($fileName, $type, $fileSize, $img_binaire) = mssql_fetch_array($result);
 
 header("Content-Transfer-Encoding: image/jpeg\n");
 header("Content-Disposition: attachment; filename= $fileName");
 header("Content-length: $fileSize");
 header("Content-type: $fileType");
  
echo base64_decode($img_binaire); 
    
}
?>

Pronto, é este o codigo todo...
Agora que consigo ver as imagens chamada directo no browser que solução terei para as visualizar a aprtir do ficheiro equipamento_view.php?? Tenho lá uma tabela onde queria que elas aparececem...

Obrigado e desculapa a atrapalhação....:confused:
 
Acrescentas na tabela
<img src="/gest/include/visualizar.php?id=2134">
Neste caso, aparece-te a imagem que já conseguiste ver.
 
OK!!!
Problema resolvido...
Não sei se faz mt sentido mas ele não pronto...
Então,

<img src="./visualizar.php?id=xxx">

não funciona...

Mas.. <img src="gest/include/visualizar.php?id=xxx"> funciona!!

É estranho pq todos os outros caminhos que tenho tem a mesma morfologia e só este não funciona... Mas pronto! tá feito!

Obrigadissimo a todos....
 
Esse ficheiro está na pasta gest/include? Ou está no document root? É que isso faz diferença :P
Ainda bem que está resolvido :)
 
Está na pasta gest/include...

Mas pronto... já tá... Até ver...

Agora o problema é qd faço upload de imagens maiores que 8k..
Da um warning..

Warning: mssql_query() [function.mssql-query]: message: Operand type clash: text is incompatible with image (severity 16)


Já tava a correr bem à mt tempo :P
 
Boas!
Tudo resolvido agora. :P
este ultimo problema era por causa da versão do sql server, em 2000 n dava mas em 2005 já funciona tudo.

Obrigado!!
 
ok...
A minha aplicação foi colocada num servidor... Linux. A bd já lá estava, SQL Server 2000, só adicionei tabelas.

O problema de visulaizar voltou... Insiro as imagens mas não as consigo ver dps...

Não sei se será do caminho.... Mas já teneti de varias formas e nada...
:mad:
Please... Alguma ideia??

Obrigado
 
O mais provavel é ser o caminho, compara o caminho que ele cria para a visualização das imagens, com o caminho suposto

Para resolveres isso, usa caminhos absolutos:


/home/.........
 
Colocando mesmo <img src= "C:/xxx/include/visualizar.php?id=<? $fotos[0]?>">
ele mostra em vez da cruzinha o icon de imagem mesmo... mas n a imagem...

:mad:
 
O <img src=...> não pode apontar para C:\!!! Tem de apontar para o caminho do script no servidor. Por exemplo, /include/visualizar.php!
O visualizar.php tem de ser um script acessível pelo público. Acho que a pasta include não costuma estar acessível (mas isso depende).
 
Boas!

Pois, eu inicialmente tinha no meu posto de trabalho,
<ims src= "home/include/visualizar.php?id=xxx">
e funcionava perfeitamente.

No servidor assim não funciona e já tentei colocar o visualizar.php fora do include e tb não dá...

A tentativa de colocar C: foi já em desespero, hehe...

E pronto... ca vou eu tentando caminhos :mad:
 
Back
Topo