Ir para conteúdo

POWERED BY:

Arquivado

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

nickfer3

[Resolvido] inserir arquivo com foto no bd

Recommended Posts

olá pessoal,

 

sou recém-chegado no fórum e já venho com uma dúvida...não tenho quase nenhum conhecimento em asp.. mas vamos lá:

 

estou modificando um script para fazer o cadastro de uma revista em pdf e colocar uma imagem de capa associada ao arquivo pdf com link para download.

tenho um script que faz o upload de fotos em jpg (no meu caso a capa da revista)..ele grava certinho no banco de dados, ele gera o nome do arquivo automático e salva no bd.

esse mesmo script eu consegui modificar para fazer o upload de arquivos pdf.. também grava no bd corretamente, porém estou com um problema.

 

eu cadastro a capa primeiro e em seguida o arquivo pdf, só que não estou conseguindo que o caminho do arquivo pdf seja salvo na mesma linha do banco de dados... veja a imagem:

 

Imagem Postada

 

como podem ver eu preciso que o registro 'tx_revista' seja salvo na mesma linha do 'tx_anexo' sem que seja criada uma nova entrada no bd como está acontecendo.. alguém pode me dar uma luz?? agradeço demaissss!!! lembrando que não tenho conhecimento em asp, então se puderem explicar didaticamente heheh..

 

(upload da capa)

pg_ad_fot.asp

 

<!--#include file="../../../conexao.asp"-->
<%
Server.ScriptTimeout = 5400 
'Session.Timeout=400
produtoid = request("produtoid")
'response.Write produtoid

conecta
sql="select max(anexoid) as cont from revista"

set rs=conn.execute(sql)
if rs.EOF or isnull(rs("cont")) or isEmpty(rs("cont")) then
	anex = 1
else
anex = rs("cont")
anex = cint(anex) + 1
end if

%>

<%  
   
	Dim Contador, Tamanho, i
	Dim ConteudoBinario, ConteudoTexto
	Dim Delimitador, Posicao1, Posicao2
	Dim ArquivoNome, ArquivoConteudo, PastaDestino
	Dim objFSO, objArquivo 
	i = 0 
	remote = left(Request.ServerVariables("REMOTE_ADDR"),12)
	'response.Write(Request.ServerVariables("SCRIPT_NAME"))
	'response.end
	if remote <> "" then
		PastaDestino = server.MapPath("../../../imagens")
	end if
	'response.write PastaDestino	
	'response.End()		
	'***** Determina o Tamanho do Conteúdo *****
	Tamanho = Request.TotalBytes
	'***** Obtém o Conteúdo no Formato Binário *****
	ConteudoBinario = Request.BinaryRead(Tamanho)

	'***** Transforma o Conteúdo Binário em String *****
	For Contador = 1 To Tamanho
		ConteudoTexto = ConteudoTexto & Chr(AscB(MidB(ConteudoBinario, Contador, 1)))
	Next
	'***** Determina o Delimitador de Campos *****
	'***** Left retorna um determinado numero de caracteres a partir do lado esquerdo da string ****
	Delimitador = Left(ConteudoTexto,InStr(ConteudoTexto, vbCrLf)-1)

	'***** Len Retorna um numero de caracter em uma string  *****
	Set objFSO = server.CreateObject("Scripting.FileSystemObject")
	
	Posicao1 = InStr(ConteudoTexto, Delimitador) + Len(Delimitador)
	Do While True
		ArquivoNome = ""
		Posicao1 = InStr(Posicao1, ConteudoTexto, "filename=")
		If Posicao1 = 0 Then
			Exit Do
		Else
			'***** Mid Essa função recorta uma string. Deve ser informada a posição inicial e a quantidade de texto a ser retornada. ***
			'***** Determina o Nome do Arquivo *****
			Posicao1 = Posicao1 + 10
			Posicao2 = InStr(Posicao1, ConteudoTexto, """")
			'ArquivoNome = Session("cd_experiencia")
			ArquivoNome = anex
			
			
			strNomeArquivo = ArquivoNome &".jpg"
			anexar = ArquivoNome &".jpg"
			ArquivoNome = "\" & ArquivoNome & ".jpg"
			'response.Write ArquivoNome
			'response.end 
			
			'***** Determina o Conteúdo do Arquivo *****
			Posicao1 = InStr(Posicao1, ConteudoTexto, vbCrLf & vbCrLf) + 4
			Posicao2 = InStr(Posicao1, ConteudoTexto, Delimitador) - 2
			ArquivoConteudo = Mid(ConteudoTexto, Posicao1, Posicao2-Posicao1+1)
		
			'***** Grava o Arquivo *****
			'i = 0 
			
			'response.write PastaDestino & ArquivoNome
			'response.End()
			
			If ArquivoNome <> "" Then
				'response.write PastaDestino & ArquivoNome
				'response.end
				
				Set objArquivo = objFSO.CreateTextFile(PastaDestino & ArquivoNome, True) 
				
				objArquivo.WriteLine ArquivoConteudo	 
				objArquivo.Close 
				'Response.Write "Arquivo " & ArquivoNome & " gravado com sucesso!!!<BR>"	& PastaDestino
				 
				Set objArquivo = Nothing
				filename1 = ArquivoNome
			End If
		End If
	Loop
	Set objFSO = Nothing 
	'cn.Execute(Session("sql_insert"))
	'cn.Execute(Session("sql_update"))

%> 

<%


sql="insert into revista(produtoid,tx_anexo) values("&produtoid&",'"&anexar&"')"
set rs=conn.execute(sql)

%>
<HTML>
<HEAD>
	<script>
	alert("Foto anexada com sucesso!")
	location.replace('pg_anexorevista.asp?produtoid=<%=produtoid%>')
	</script>
</HEAD>
</html>

(arquivo do pdf)

pg_ad_revista.asp

 

<!--#include file="../../../conexao.asp"-->
<%
Server.ScriptTimeout = 5400 
'Session.Timeout=400
produtoid = request("produtoid")
'response.Write produtoid

conecta
sql="select max(anexoid) as cont from revista"

set rs=conn.execute(sql)

anex = rs("cont")

'response.Write "aqui >>>> ??????	" & anex
'response.end 

%>

<%  
   
	Dim Contador, Tamanho, i
	Dim ConteudoBinario, ConteudoTexto
	Dim Delimitador, Posicao1, Posicao2
	Dim ArquivoNome, ArquivoConteudo, PastaDestino
	Dim objFSO, objArquivo 
	i = 0 
	remote = left(Request.ServerVariables("REMOTE_ADDR"),12)
	'response.Write(Request.ServerVariables("SCRIPT_NAME"))
	'response.end
	if remote <> "" then
		PastaDestino = server.MapPath("../../../revista")
	end if
	'response.write PastaDestino	
	'response.End()		
	'***** Determina o Tamanho do Conteúdo *****
	Tamanho = Request.TotalBytes
	'***** Obtém o Conteúdo no Formato Binário *****
	ConteudoBinario = Request.BinaryRead(Tamanho)

	'***** Transforma o Conteúdo Binário em String *****
	For Contador = 1 To Tamanho
		ConteudoTexto = ConteudoTexto & Chr(AscB(MidB(ConteudoBinario, Contador, 1)))
	Next
	'***** Determina o Delimitador de Campos *****
	'***** Left retorna um determinado numero de caracteres a partir do lado esquerdo da string ****
	Delimitador = Left(ConteudoTexto,InStr(ConteudoTexto, vbCrLf)-1)

	'***** Len Retorna um numero de caracter em uma string  *****
	Set objFSO = server.CreateObject("Scripting.FileSystemObject")
	
	Posicao1 = InStr(ConteudoTexto, Delimitador) + Len(Delimitador)
	Do While True
		ArquivoNome = ""
		Posicao1 = InStr(Posicao1, ConteudoTexto, "filename=")
		If Posicao1 = 0 Then
			Exit Do
		Else
			'***** Mid Essa função recorta uma string. Deve ser informada a posição inicial e a quantidade de texto a ser retornada. ***
			'***** Determina o Nome do Arquivo *****
			Posicao1 = Posicao1 + 10
			Posicao2 = InStr(Posicao1, ConteudoTexto, """")
			'ArquivoNome = Session("cd_experiencia")
			ArquivoNome = anex
			
			
			strNomeArquivo = ArquivoNome &".pdf"
			anexar = ArquivoNome &".pdf"
			ArquivoNome = "\" & ArquivoNome & ".pdf"
			'response.Write ArquivoNome
			'response.end 
			
			'***** Determina o Conteúdo do Arquivo *****
			Posicao1 = InStr(Posicao1, ConteudoTexto, vbCrLf & vbCrLf) + 4
			Posicao2 = InStr(Posicao1, ConteudoTexto, Delimitador) - 2
			ArquivoConteudo = Mid(ConteudoTexto, Posicao1, Posicao2-Posicao1+1)
		
			'***** Grava o Arquivo *****
			'i = 0 
			
			'response.write PastaDestino & ArquivoNome
			'response.End()
			
			If ArquivoNome <> "" Then
				'response.write PastaDestino & ArquivoNome
				'response.end
				
				Set objArquivo = objFSO.CreateTextFile(PastaDestino & ArquivoNome, True) 
				
				objArquivo.WriteLine ArquivoConteudo	 
				objArquivo.Close 
				'Response.Write "Arquivo " & ArquivoNome & " gravado com sucesso!!!<BR>"	& PastaDestino
				 
				Set objArquivo = Nothing
				filename1 = ArquivoNome
			End If
		End If
	Loop
	Set objFSO = Nothing 
	'cn.Execute(Session("sql_insert"))
	'cn.Execute(Session("sql_update"))

%> 

<%


sql="insert into revista(produtoid,tx_revista) values("&produtoid&",'"&anexar&"')"
set rs=conn.execute(sql)

%>
<HTML>
<HEAD>
	<script>
	alert("Revista anexada com sucesso!")
	location.replace('resultadoprodutoanexo.asp?produtoid=<%=produtoid%>')
	</script>
</HEAD>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente seja bem-vindo ao Fórun http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Analisando o seu código... oq ocorre é que você possui duas instruções "INSERT INTO" diferentes.... uma para o txt_anexo e outra para o txt_revista..

 

O ideal é você juntar as duas.. ai sim seu sistema ficará redondo...

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente seja bem-vindo ao Fórun http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Analisando o seu código... oq ocorre é que você possui duas instruções "INSERT INTO" diferentes.... uma para o txt_anexo e outra para o txt_revista..

 

O ideal é você juntar as duas.. ai sim seu sistema ficará redondo...

 

Abraços...

Isso mesmo, faz isso que o Dark postou criar uma pagina pra up os dois arquivos ao mesmo tempo,...Entao faz o seguinte na pagina do anexo do pdf, acrescenta mais uma campo pra imagem da revista, e supimpa !!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente seja bem-vindo ao Fórun http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Analisando o seu código... oq ocorre é que você possui duas instruções "INSERT INTO" diferentes.... uma para o txt_anexo e outra para o txt_revista..

 

O ideal é você juntar as duas.. ai sim seu sistema ficará redondo...

 

Abraços...

Isso mesmo, faz isso que o Dark postou criar uma pagina pra up os dois arquivos ao mesmo tempo,...Entao faz o seguinte na pagina do anexo do pdf, acrescenta mais uma campo pra imagem da revista, e supimpa !!!!!

 

 

primeiramente, muito obrigado pelas respostas!!

 

Darkdemo e Loko da Web, acabei de adicionar mais um campo pra imagem da revista na pagina do anexo do pdf...os dois agora estao indicados a fazer o post no 'pg_ad_revista.asp' ... mas como eu modifico no código 'pg_ad_revista.asp' para que ele inclua o arquivo jpg e pdf ao mesmo tempo e saiba a ordem certa? já que nesse código está limitando a arquivos somente pdf ... http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif to quebrando a cabeça aqui heeheh

Compartilhar este post


Link para o post
Compartilhar em outros sites

não poderia usar o mesmo?

estou tentando modificar o script aqui mas ta osso... tenho muito pouco conhecimento em ASP ainda.. acredito que seja algo simples de mudar para cadastrar os 2 ao mesmo tempo, só nao estou conseguindo aqui..

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz uma função para chamar os dois ao mesmo tempo, não precisa necessariamente duplicar o script!

e aí Ted k blza?

 

pois é, é isso que eu não to sabendo fazer.. tem como você explicar como faz? eu deixo de lado o 'pg_ad_fot.asp' e utilizo só o 'pg_ad_revista.asp' certo? e como deve ser alterado esse script para chamar o arquivo jpg e o arquivo pdf ao mesmo tempo? eu nao sei o que adicionar nele pra fazer isso funcionar.. se você puder ilustrar usando o código que postei eu agradeceria muito!

 

valeuu demais pela ajuda!! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz uma função para chamar os dois ao mesmo tempo, não precisa necessariamente duplicar o script!

e aí Ted k blza?

 

pois é, é isso que eu não to sabendo fazer.. tem como você explicar como faz? eu deixo de lado o 'pg_ad_fot.asp' e utilizo só o 'pg_ad_revista.asp' certo? e como deve ser alterado esse script para chamar o arquivo jpg e o arquivo pdf ao mesmo tempo? eu nao sei o que adicionar nele pra fazer isso funcionar.. se você puder ilustrar usando o código que postei eu agradeceria muito!

 

valeuu demais pela ajuda!! :)

 

nickfer3 vou disponibilizar um link sobre upload sem componente, é muito bom...

 

http://forum.imasters.com.br/index.php?showtopic=164376

 

Qualquer duvida, poste ai !!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai você vai ter que bater cabeça, olha só:

 

esse trecho aqui

strNomeArquivo = ArquivoNome &".pdf"
anexar = ArquivoNome &".pdf"
ArquivoNome = "\" & ArquivoNome & ".pdf"

terá que criar outro para receber as informações do novo campo e de acordo com o que quer, e mudar em outros lugares tbm!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, eu dupliquei o código dentro do arquivo 'pg_ad_revista.asp' e alterei o nome das extensões.. ficou:

capa = ArquivoNome &".jpg" e anexar = ArquivoNome &".pdf"

só que quando clico para cadastrar da um erro na parte:

 

Dim Contador, Tamanho, i

Dim ConteudoBinario, ConteudoTexto

Dim Delimitador, Posicao1, Posicao2

Dim ArquivoNome, ArquivoConteudo, PastaDestino

Dim objFSO, objArquivo

i = 0

 

e quando eu excluo essa parte ele cadastra da forma que eu quero, só que não envia o conteúdo da foto.. salva só um arquivo .jpg vazio... como resolver??

 

eu tentei mexer onde o Ted k me indicou só que não obtive sucesso...eu não estou sabendo fazer esse código funfar.. ajudem please, quem puder...

 

loko da web valeu pelo link! eu ja tinha buscado no fórum e esse eu cheguei a ver.. eu sempre faço uma busca nos fóruns antes de postar alguma pergunta heeheh.. geralmente eu sempre acho alguem q ja teve o mesmo problema.. mas dessa vez ta dificil!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, eu dupliquei o código dentro do arquivo 'pg_ad_revista.asp' e alterei o nome das extensões.. ficou:

capa = ArquivoNome &".jpg" e anexar = ArquivoNome &".pdf"

só que quando clico para cadastrar da um erro na parte:

 

Dim Contador, Tamanho, i

Dim ConteudoBinario, ConteudoTexto

Dim Delimitador, Posicao1, Posicao2

Dim ArquivoNome, ArquivoConteudo, PastaDestino

Dim objFSO, objArquivo

i = 0

 

e quando eu excluo essa parte ele cadastra da forma que eu quero, só que não envia o conteúdo da foto.. salva só um arquivo .jpg vazio... como resolver??

 

eu tentei mexer onde o Ted k me indicou só que não obtive sucesso...eu não estou sabendo fazer esse código funfar.. ajudem please, quem puder...

 

loko da web valeu pelo link! eu ja tinha buscado no fórum e esse eu cheguei a ver.. eu sempre faço uma busca nos fóruns antes de postar alguma pergunta heeheh.. geralmente eu sempre acho alguem q ja teve o mesmo problema.. mas dessa vez ta dificil!!

Tenta usar com upload sem componente....

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.