Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Arlene Paula

[Resolvido] Como coloco imagem de capas de livro em página asp, p

Recommended Posts

Oi pessoal, dps das festas, to de volta! Espero q tenham passado bem de festas!

 

Seguinte, eu tenho um BD onde cadastro todos os livros e outros produtos daki onde trablho e preciso fazer uma página que mostre o Título e a capa do livro apenas. O problema é que não sei que ferramenta eu uso pra inserir essa imagem e que linha de comando eu uso pra ele mostrar.

Tenho um outro arquivo aki q jah veio pronto, só pra alterar e tentei fazer o mesmo que tah lah, mas não deu certo nesse novo arquivo que to tentando criar. Veja abaixo:

 

Imagem Postada

 

O código q tem nela tah assim:

 

TD width="14%" rowspan="6" class="texto_pagina"><a href="<%=(objRS.Fields.Item("foto").Value)%>" onClick="abre_foto(350, 350, 'janela_foto')" target="janela_foto"><img src="<%=(objRS.Fields.Item("foto").Value)%>" border=0 width=100 height="125"></a></TD>

 

 

O que posso fazer? é um form bem simples, só com titulo e capa. Não posso clicar em "salvar como" pq to bolando um projeto diferente, tenho q fazer uma página que define qual produto tah ativo ou não para aparecer na nossa home page!

 

Se puderem me ajudar, fico mto grata!

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salvando no banco ja esta certo ? só precisa exibir ?

 

Pois se for fazer a parte de salver aconselho salvar a imagem em uma pasta e salvar no banco apenas o caminha fisico da imagem.

 

Na hora de exibir voce tras no seu LOOP a tag IMG com o scr="<%=caminho_da_imagem%>"

 

Seu banco de dados fica mais, muito mais, muito mais mesmo, leve e o seu sistema mais rapido(muito mais rapido).

 

Abarços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, é só exibir mesmo, pois jah faço isso no meu BD jah. Meu bd se chama "catálogo.mdb", a tabela se chama "tabprodutos" e o campo onde está o caminho da imagem é "foto". Como ficaria? Eu tenho q ir em algum menu e acrescentar alguma ferramenta pra isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem uma pasta de upload da imagem? ou esta adicionando na mão?

 

 

faz o seguinte.

 

usa um if para selecionar uma imagem de um determinado campo, ou uma imagem padrão caso "a capa do livro não esteja disponivel."

 

 

funciona assim...

 

no fomulario que você for criar para cadastrar seus dados, acrescenta um campo "SN" sim/não, onde o valor para NÃO é "0" (zero) e para SIM o valor é "1" (um)

 

depois que isso tiver gravado, na página que vai recuperar os dados (a pagina que mostra os dados) você joga o if abaixo.

 

 

Lembre-se de que no (<img src="Foto\<%=rs("foto")%>.jpg">)

 

(Foto\) é a pasta onde as fotos estarão

e (<%=rs("foto")%>) é o cod. asp que vai colocar o nome dinamicamente do arquivo que esta em seu banco

e (.jpg) é a extensão da imagem.

 

sempre que você cadastrar uma imagem com o nome que está na coluna "foto" em seu banco de dados e que a extensão for ".jpg" e que o arquivo da imagem esteja na pasta "Foto", irá aparecer a imagem.

 

espero ter ajudado.

 

 

 

 

<%

imagem=rs("sn")

if imagem = 0 then %>

<div align="center"><center><img src="Foto\produto_nao_cadastrado.jpg"></center></div>


<% elseif imagem = 1 then %>

<div align="center"><center><img src="Foto\<%=rs("foto")%>.jpg"></center></div>


<% end if %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, é só exibir mesmo, pois jah faço isso no meu BD jah. Meu bd se chama "catálogo.mdb", a tabela se chama "tabprodutos" e o campo onde está o caminho da imagem é "foto". Como ficaria? Eu tenho q ir em algum menu e acrescentar alguma ferramenta pra isso?

Tem q ver como a imagem está salva no DB. Se estiver como binário, você precisa criar um documento que le o banco de dados, altera o ContentType e depois dá um Response.BinaryWrite, daí você pode chamar sua imagem como: <img src="dbImg.asp?id=888" alt="Imagem de id 888" title="Imagem de id 888" />

 

Se estiver em Base64 você pode <img src="data:image/gif;base64,{codigoDaImagemEmBase64}" alt="Base64 encoded image" title="Base64 encoded image" />, mas esse método não funciona em browsers antigos (nem IE7 se me lembro bem....)

 

Outra forma é você transformar Base64 em Binary, você pode utilizar o MSXML2 para fazer a conversão.

 

Bom, se você está guardando o path da imagem física não vou nem comentar...

 

Atenciosamente,

 

Fabio Zendhi Nagao (nagaozen)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade, é assim:

eu jah tenho um sistema de catálogo virtual pronto, onde, qdo chega algum livro ou qlqr produto novo e kero divulga-lo na nossa página, eu consigo cadastra-lo via internet mesmo, então, jah tem sistema de up-load de imagens e td mais. Eu preciso fazer uma página diferente, onde eu tenha apenas a capa, o título e o valor, pra colocar na home page, como se fosse uma propaganda, que fica girando, mostrando os lançamentos. Então, no meu BD catalogo.mdb, tem um campo que eu defino como "ambos" quando quero o mesmo produto aparecendo dentro do catálogo e também na home e defino como "catalogo" quando ele não deve aparecer na home. to me baseando num sistema de noticia, onde se a noticia for ativa, aparece na página de noticias, se for inativa, ela não aparece lá mais, mas continua armazenada para quem quiser consultar. Só q o sistema é só pra texto e eu to com dificuldade em fazer a figura aparecer lah.

A tabela onde vai aparecer a figura, o título e valor, está assim:

 

<table width="200" border="0" cellspacing="0" cellpadding="0">
  <tr>
	<td><a href="<%=(rscatalogo.Fields.Item("link").Value)%>"><img src="<%=(rscatalogo.Fields.Item("foto").Value)%>" width="100" height="125" border="0"></a></td>
  </tr>
  <tr>
	<td><%=(rscatalogo.Fields.Item("titulo").Value)%></td>
  </tr>
  <tr>
	<td><%=(rscatalogo.Fields.Item("preco").Value)%></td>
  </tr>
  <tr>
	<td> </td>
  </tr>
</table>

E retorna este erro:

 

Tipo de erro:

ADODB.Field (0x800A0BCD)

BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.

/comdeus2007/divulgacao/dados/lojahome.asp, line 26

 

 

E esta é a linha 26:

 

<td><a href="<%=(rscatalogo.Fields.Item("link").Value)%>"><img src="<%=(rscatalogo.Fields.Item("foto").Value)%>" width="100" height="125" border="0"></a></td>

O que pode estar havendo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

na onde você setou seu objeto recordset ?

e coloca um

 

<%  while not rs.eof

<td><a href="<%=(rscatalogo.Fields.Item("link").Value)%>"><img src="<%=(rscatalogo.Fields.Item("foto").Value)%>" width="100" height="125" border="0"></a></td>
  </tr>
  <tr>
	<td><%=(rscatalogo.Fields.Item("titulo").Value)%></td>
  </tr>
  <tr>
	<td><%=(rscatalogo.Fields.Item("preco").Value)%></td>
  </tr>
  <tr>

rs.movenext
	  wend
	set rs=nothing
   call fechaconexao %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai amigo, o que é setar? Sou meio leiga ainda em ASP... eu fui seguindo um tutorial que encontrei na internet, um sistema de noticia que adaptei pro catálogo. Ele pede pra criar um BD pra inserir as informações (este eu jah tinha, do catálogo jah pronto da editora) e depois, criar uma conexão em: APPLICATION > DATABASES > SINAL DE MAIS > CUSTOM CONNECTION STRING e preencher conforme está no site dele. Os recordsets tb são feitos assim, na aba APPLICATION > SERVER BEHAIVORS > SINAL DE MAIS > INSERT RECORD. Tem outros skemas tb de REPEAT REGION, BINDINGS > SINAL DE MAIS > RECORD SET (QUERY) e alguns outros de atualizar e deletar. Se você kiser, passo o sistema pra você via e-mail (se aki puder passar e-mail).

É algo assim q você precisava saber?

Vou testar esse código q você me passou... jah jah comento o resultado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode me enviar. Se quiser use o serviço de mensagem do fórum. Sugiro que você faça as conexões e RECORDSET sem o uso de ferramenta RAD.

 

E setar é assim:

 

SET rs = Server.CreateObject("ADODB.Recordset")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usei o código q você me passou... mas o estranho é q ele tira o objeto figura da minha tabela e dá o seguinte erro:

 

Tipo de erro:

Erro de compilação do Microsoft VBScript (0x800A0400)

Instrução esperada

/comdeus2007/divulgacao/dados/lojahome.asp, line 27

<td width="116"><a href="<%=(rscatalogo.Fields.Item("link").Value)

 

E realmente, nao sei o q tah acontecendo com essa pagina, q envia um monte de respostas p fórum. Eu clico uma unica vez e ele leva uma eternidade, quando não cai. Aí qdo vai, aparece um punhado de msgs iguais!

 

Amigo, sua ajuda está sendo ótima!! Espero q consigamos fechar logo esse assunto rsrs!

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

é só isso a linha que da erro ?

pois você precisa fechá-la

<td width="116"><a href="<%=(rscatalogo.Fields.Item("link").Value)%>"><%=(rscatalogo.Fields.Item("nome").Value)%></A>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Contiua com o mesmo erro:

 

Tipo de erro:

Erro de compilação do Microsoft VBScript (0x800A0400)

Instrução esperada

/comdeus2007/divulgacao/dados/lojahome.asp, line 38

<td width="116"><a href="<%=(rscatalogo.Fields.Item("link").Value)

 

 

Na linha 38 tem:

 

<td width="116"><a href="<%=(rscatalogo.Fields.Item("link").Value)%>"><img src="<%=(rscatalogo.Fields.Item("foto").Value)%>"</a> width="100" height="125" border="0">

Agora, o código todo do arquivo lojahome.asp (que seria a última página lah, onde aparecerem as manchetes, dakele sistema q te passei) está assim:

 

lojahome.asp

 

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="../../Connections/conncatalogo.asp" -->
<%
Dim rscatalogo__MMColParam
rscatalogo__MMColParam = "1"
If (Request.QueryString("ambos") <> "") Then 
  rscatalogo__MMColParam = Request.QueryString("ambos")
End If
%>
<%
Dim rscatalogo
Dim rscatalogo_numRows

Set rscatalogo = Server.CreateObject("ADODB.Recordset")
rscatalogo.ActiveConnection = MM_conncatalogo_STRING
rscatalogo.Source = "SELECT * FROM tabprodutos WHERE definir = '" + Replace(rscatalogo__MMColParam, "'", "''") + "' ORDER BY codigobd DESC"
rscatalogo.CursorType = 0
rscatalogo.CursorLocation = 2
rscatalogo.LockType = 1
rscatalogo.Open()

rscatalogo_numRows = 0
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = 10
Repeat1__index = 0
rscatalogo_numRows = rscatalogo_numRows + Repeat1__numRows
%>
<% 
While ((Repeat1__numRows <> 0) AND (NOT rscatalogo.EOF)) 
%>
  <table width="116" border="0" cellspacing="0" cellpadding="0">
	<tr>
	<%  while not rs.eof
	  <td width="116"><a href="<%=(rscatalogo.Fields.Item("link").Value)%>"><img src="<%=(rscatalogo.Fields.Item("foto").Value)%>"</a> width="100" height="125" border="0">
	  </a></td>
	</tr>
	<tr>
	  <td><%=(rscatalogo.Fields.Item("titulo").Value)%></td>
	</tr>
	<tr>
	  <td><%=(rscatalogo.Fields.Item("preco").Value)%></td>
	</tr>
	<tr>
	rs.movenext
	  wend
	set rs=nothing
   call fechaconexao %>
	  <td background="imagens/linha_horizontal1.jpg"> </td>
	</tr>
  </table>
  <% 
  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  rscatalogo.MoveNext()
Wend
%>
<%
rscatalogo.Close()
Set rscatalogo = Nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim...

 

 

<td width="116"><a href="<%=rscatalogo.Fields.Item("link").Value%>"><img src="<%=rscatalogo.Fields.Item("foto").Value%>"</a> width="100" height="125" border="0">

ou assim

 

<td width="116"><a href="<%=rscatalogo("link")%>"><img src="<%=rscatalogo("foto")%>"</a> width="100" height="125" border="0">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei como aí em cima:

 

<td width="116"><a href="<%=rscatalogo.Fields.Item("link").Value%>"><img src="<%=rscatalogo.Fields.Item("foto").Value%>" width="100" height="125" /></a></td>

 

Mas agora, acontecem 2 situações:

 

Se não tiver o comando REPEAT REGION, dá a mensagem de erro:

 

Tipo de erro:

ADODB.Field (0x800A0BCD)

BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.

/comdeus2007/divulgacao/dados/lojahome.asp, line 26

A linha 26 é exatamente essa que coloquei, escrita logo acima.

 

Se tiver o repeat region:

 

<%
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = 10
Repeat1__index = 0
rscatalogo_numRows = rscatalogo_numRows + Repeat1__numRows
%>
<% 
While ((Repeat1__numRows <> 0) AND (NOT rscatalogo.EOF)) 
%>
  <table width="116" border="0" cellspacing="0" cellpadding="0">
	<tr>
	  <td width="116"><a href="<%=rscatalogo.Fields.Item("link").Value%>"><img src="<%=rscatalogo.Fields.Item("foto").Value%>" width="100" height="125" /></a></td>
	</tr>
	<tr>
	  <td><%=(rscatalogo.Fields.Item("titulo").Value)%></td>
	</tr>
	<tr>
	  <td><%=(rscatalogo.Fields.Item("preco").Value)%></td>
	</tr>
	<tr>
		  <td background="imagens/linha_horizontal1.jpg"> </td>
	</tr>
  </table>
  <% 
  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  rscatalogo.MoveNext()
Wend
%>
<%
rscatalogo.Close()
Set rscatalogo = Nothing
%>

 

Aí a página não dá erro, porém, a página aparece totalmente em branco, sem nada!!

 

Pessoal, obrigada pela paciência!! Continuo aguardando dicas!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei como aí em cima:

 

<td width="116"><a href="<%=rscatalogo.Fields.Item("link").Value%>"><img src="<%=rscatalogo.Fields.Item("foto").Value%>" width="100" height="125" /></a></td>

 

Mas agora, acontecem 2 situações:

 

Se não tiver o comando REPEAT REGION, dá a mensagem de erro:

 

Tipo de erro:

ADODB.Field (0x800A0BCD)

BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.

/comdeus2007/divulgacao/dados/lojahome.asp, line 26

 

A linha 26 é exatamente essa que coloquei, escrita logo acima.

 

Se tiver o repeat region:

 

<%

Dim Repeat1__numRows

Dim Repeat1__index

 

Repeat1__numRows = 10

Repeat1__index = 0

rscatalogo_numRows = rscatalogo_numRows + Repeat1__numRows

%>

<%

While ((Repeat1__numRows <> 0) AND (NOT rscatalogo.EOF))

%>

<table width="116" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="116"><a href="<%=rscatalogo.Fields.Item("link").Value%>"><img src="<%=rscatalogo.Fields.Item("foto").Value%>" width="100" height="125" /></a></td>

</tr>

<tr>

<td><%=(rscatalogo.Fields.Item("titulo").Value)%></td>

</tr>

<tr>

<td><%=(rscatalogo.Fields.Item("preco").Value)%></td>

</tr>

<tr>

<td background="imagens/linha_horizontal1.jpg"> </td>

</tr>

</table>

<%

Repeat1__index=Repeat1__index+1

Repeat1__numRows=Repeat1__numRows-1

rscatalogo.MoveNext()

Wend

%>

<%

rscatalogo.Close()

Set rscatalogo = Nothing

%>

 

 

Aí a página não dá erro, porém, a página aparece totalmente em branco, sem nada!!

 

Pessoal, obrigada pela paciência!! Continuo aguardando dicas!

Abaixo dessa parte...

 

rscatalogo.Source = "SELECT * FROM tabprodutos WHERE definir = '" + Replace(rscatalogo__MMColParam, "'", "''") + "' ORDER BY codigobd DESC"

Coloque isso

 

If rscatalogo.EOF Then
Response.write ("nenhum registro")
end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eehh, deu certo! A mensagem apareceu... só que o problema é que tem registro na tabela... por que não está aparecendo? Alguem aí tem idéia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eehh, deu certo! A mensagem apareceu... só que o problema é que tem registro na tabela... por que não está aparecendo? Alguem aí tem idéia?

Verifique se o valor que esta vindo no seu Where é compativeu com o que tem na tabela

 

WHERE definir = '" + Replace(rscatalogo__MMColParam, "'", "''")

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao sei se entendi muito bem... mas acho que está sim!!

O Campo definir é pro seguinte... eu tenho na página de cadastro ou de alteração um campo com um radiogroup, com duas alternativas: Se o produto deve aparecer no catálogo e na propaganda da home, o valor é "ambos". Se deve sair da home e aparecer só no catálogo interno, o valor é "catalogo" e o campo definir que vai receber esses valores. Eai, tem alguma coisa a ver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se alguem vai ler isso aki... mas por incrivel que pareça, consegui resolver o problema das imagens qe não apareciam. Comparei com um outro arquivo q eu tinha, do sistema de noticias. O primeiro IF estava assim:

 

<%@LANGUAGE="VBSCRIPT"%>

<!--#include file="../Connections/conexao.asp" -->

<%

Dim RSNoticia__MMColParam

RSNoticia__MMColParam = "A"

If (Request("MM_EmptyValue") <> "") Then

RSNoticia__MMColParam = Request("MM_EmptyValue")

End If

%>

 

e do meu arquivo lojahome.asp estava assim:

 

<%@LANGUAGE="VBSCRIPT"%>

<!--#include file="../../Connections/conncatalogo.asp" -->

<%

Dim rscatalogo__MMColParam

rscatalogo__MMColParam = "1"

If (Request.QueryString("ambos") <> "") Then

rscatalogo__MMColParam = Request.QueryString("ambos")

End If

%>

 

Onde está a linha rscatalogo__MMColParam = "1" eu troquei para rscatalogo__MMColParam = "ambos" e onde estava:

If (Request.QueryString("ambos") <> "") Then

rscatalogo__MMColParam = Request.QueryString("ambos")

 

eu mudei para:

If (Request.QueryString("MM_EmptyValue") <> "") Then

rscatalogo__MMColParam = Request.QueryString("MM_EmptyValue")

 

e pronto!! Apareceram as imagens!

 

Obrigada a quem tenttou me ajudar!!

 

Bjs!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.