Ir para conteúdo

POWERED BY:

Arquivado

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

Nando Leads

Como passar imagens para formularios.

Recommended Posts

Utilizo o seguinte codigo para fazer o upload de fotos e salvalas em uma pasta no servidor chamada 'imagens'.

O codigo esta funcionando perfeitamente faz o upload e salva na pasta sem problemas.

No codigo abaixo desabilitei os campos 'nome' e 'email' que pro meu projeto não é necessario, só necessito da foto.

Segue os formulario abaixo:

 

Upload_form.asp

 

 

<table width="344" align="center"><form name="form1" action="upload_form2.asp" method="post" enctype="multipart/form-data"><tr><td>Foto:</td><td><input type="file" name="foto" size="28"></td></tr><tr><td height="79" colspan="2"><p><input type="submit" name="submit" value="Enviar"></p></td></tr></form> </table>

upload_form2.asp

 

<%Sub BuildUploadRequest(RequestBin)on error resume nextPosBeg = 1PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(13)))boundary = MidB(RequestBin, PosBeg, PosEnd - PosBeg)BoundaryPos = InStrB(1, RequestBin, boundary)Do Until (BoundaryPos = InStrB(RequestBin, boundary & getByteString("--")))Dim UploadControlSet UploadControl = CreateObject("Scripting.Dictionary")Pos = InStrB(BoundaryPos, RequestBin, getByteString("Content-Disposition"))Pos = InStrB(Pos, RequestBin, getByteString("name="))PosBeg = Pos + 6PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(34)))Name = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg))PosFile = InStrB(BoundaryPos, RequestBin, getByteString("filename="))PosBound = InStrB(PosEnd, RequestBin, boundary)If PosFile <> 0 And (PosFile < PosBound) ThenPosBeg = PosFile + 10PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(34)))FileName = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg))UploadControl.Add "FileName", FileNamePos = InStrB(PosEnd, RequestBin, getByteString("Content-Type:"))PosBeg = Pos + 14PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(13)))ContentType = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg))UploadControl.Add "ContentType", ContentTypePosBeg = PosEnd + 4PosEnd = InStrB(PosBeg, RequestBin, boundary) - 2Value = MidB(RequestBin, PosBeg, PosEnd - PosBeg)ElsePos = InStrB(Pos, RequestBin, getByteString(Chr(13)))PosBeg = Pos + 4PosEnd = InStrB(PosBeg, RequestBin, boundary) - 2Value = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg))End IfUploadControl.Add "Value", ValueUploadRequest.Add Name, UploadControlBoundaryPos = InStrB(BoundaryPos + LenB(boundary), RequestBin, boundary)LoopEnd SubFunction getByteString(StringStr)For i = 1 To Len(StringStr)Char = Mid(StringStr, i, 1)getByteString = getByteString & ChrB(AscB(Char))NextEnd FunctionFunction getString(StringBin)getString = ""For intCount = 1 To LenB(StringBin)getString = getString & Chr(AscB(MidB(StringBin, intCount, 1)))NextEnd Function%><%byteCount = Request.TotalBytesRequestBin = Request.BinaryRead(byteCount)Set UploadRequest = CreateObject("Scripting.Dictionary")BuildUploadRequest RequestBin'nome = UploadRequest.Item("nome").Item("Value")'email = UploadRequest.Item("email").Item("Value")tipo_foto = UploadRequest.Item("foto").Item("ContentType")caminho_foto = UploadRequest.Item("foto").Item("FileName")nome_foto = Right(caminho_foto,Len(caminho_foto)-InstrRev(caminho_foto,"\"))foto = UploadRequest.Item("foto").Item("Value")pasta = Server.MapPath("imagens/")nome_foto = "/"&nome_foto'cfoto = "imagens/lojas" + nome_fotoif foto <> "" thenSet ScriptObject = Server.CreateObject("Scripting.FileSystemObject")Set MyFile = ScriptObject.CreateTextFile(pasta & nome_foto)For i = 1 to LenB(foto)MyFile.Write chr(AscB(MidB(foto,i,1)))NextMyFile.Closeend if'url_conexao = Server.MapPath("banco.mdb")'set conexao = Server.CreateObject("ADODB.Connection")'conexao.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&url_conexao 'sql = "Insert into lojas (nome,email,foto) values ('"& nome &"', '"& email &"', '"& cfoto &"')"'Conexao.Execute(sql)Response.write "Dados Cadastrados com Sucesso!"response.write "<br><br>você será redirecionado em 5 segundos..<br>"response.write "<meta http-equiv='refresh' content='5; url=index.asp'/>"%>

 

Agora necessito utilizar esta foto que foi salva na pasta imagen no servidor no meu formulario de cadastro de

"motorista" por exemplo:

A idea é, o funcionario q esta fazendo o cadastro do motorista, tira a foto do funcionario, faz o upload e envia...

...durante esse cadastro ele tera q utilizar esta foto q esta salva na pasta imagen do servidor no formulario de cadastro...

...de motorista em um campo que seja possivel visualizar esta foto.

 

Outra duvida:

Sera melhor::

...quando o cadastro for realizado com seus campos devidamente preenchidos e for enviado para o banco de dados...

...quando salvo esse cadastro no campo foto devo salvar somente o edereço da pasta imagens ex:"imagens/foto1.jpg...

...para q no momento da pesquisa de motorista a visualização da imagem ocorra perfeitamente.

 

Necessito da ajuda de vcs!!!!C puderem me ajudadar fico grato desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o ideal é você pegar o ID do cadastro realizado e quando necessitar faz o select pra buscar os campos desejados, inclusive o que grava o nome da foto. Assim você poderá utilizar em qualquer lugar. Só não compreendi, o cara faz o upload e é redirecionado para index.asp, em que momento vai utilizar essa foto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o ideal é você pegar o ID do cadastro realizado e quando necessitar faz o select pra buscar os campos desejados, inclusive o que grava o nome da foto. Assim você poderá utilizar em qualquer lugar. Só não compreendi, o cara faz o upload e é redirecionado para index.asp, em que momento vai utilizar essa foto?

É que ta em faze de teste ainda, mas o index.asp seria o formulario de login-que ñ tem nada a ver com o negocio.No momento do cadastro o funcionario não vai visualizar a foto ela vai ser enviada para a pasta do servidor.A foto sera utilizada no formulario de pesquisa, aonde sera visualizado o cadastro junto com a foto.Mas valeu ae pela dica. Vou testar dessa maneira.Valeu!!!!!!!!!!!!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente... como o jonathandj comentou é o mais indicado. Apenas uma sugestão.

Faça o cadastro primeiro, preenchendo os dados do motorista, pois a foto não é uma questão de obrigatoriedade, mas os dados são.

 

Apos fazer o cadastro do motorista, apresente uma frase já com link: Ex:

Dados gravados com sucesso, clique aqui para enviar a foto.

 

Entao no link, chame o seu programa de envio de foto, passando o código do motorista como parâmetro.

<a href="enviafoto.asp?codigo=<%=IdMotorista%>">aqui</a>
Acrescente mais uma coluna na tua tabela:

idMot, nome, email, foto

e grave esse valor recebido como parametro, junto com o endereço da foto.

 

Assim, você estará ligando a tua tabela de fotos com a tabela dos dados principais do motorista, quando você fizer um SELECT, use o INNER JOIN pra relacionar as duas tabelas com o IdMot, o endereço da foto vai vir no RecordSet, daí é só escrever no teu formulario HTML.

 

Qualquer dúvida, poste aí.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é só você colocar<img src="<%=nomeRecordset("campoDaImagem")%>">

No caso do ("campoDaImagem") é o endereço da foto, q esta salva na pasta do servidor?Valeu pela dica!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente...É o endereço da foto que está na pasta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente... como o jonathandj comentou é o mais indicado. Apenas uma sugestão.

Faça o cadastro primeiro, preenchendo os dados do motorista, pois a foto não é uma questão de obrigatoriedade, mas os dados são.

 

Apos fazer o cadastro do motorista, apresente uma frase já com link: Ex:

Dados gravados com sucesso, clique aqui para enviar a foto.

 

Entao no link, chame o seu programa de envio de foto, passando o código do motorista como parâmetro.

<a href="enviafoto.asp?codigo=<%=IdMotorista%>">aqui</a>
Acrescente mais uma coluna na tua tabela:

idMot, nome, email, foto

e grave esse valor recebido como parametro, junto com o endereço da foto.

 

Assim, você estará ligando a tua tabela de fotos com a tabela dos dados principais do motorista, quando você fizer um SELECT, use o INNER JOIN pra relacionar as duas tabelas com o IdMot, o endereço da foto vai vir no RecordSet, daí é só escrever no teu formulario HTML.

 

Qualquer dúvida, poste aí.

 

 

Concordo com você, o mais importante é o cadastro do motorista e ñ a foto.

Vou seguir sua sugestao. Apos o cadastro carrega a pagina para envio de fotos.

A minha tabela de motorista tera o envio de quatro fotos diferentes, nesse caso o melhor a fazer é uma pagina so para o envio de fotos,

terei entaun q fazer uma tabela só para armazenar os enderços de fotos ex::

 

idMotorista"q e o relacionamento com a tbl_moto"

end_foto1"q é o endereço d onde a foto esta salva"

end_foto2 "

end_foto3 "

end_foto4 "

 

quando der o select ira puxar o cadastro do motorista + as fotos usando o <img src="<%=nomeRecordset("end_foto1")%>"> por exemplo

e na tabela motorista o campo idMotorista para fazer o relacionamento.

 

 

sera q da serto ou eu to viajando.

 

valeu pela força!!!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente... você está no caminho certo... Posso te dar mais uma sugestão ?O que vai acontecer com sua tabela de fotos, que contém 4 colunas, se o motorista tiver apenas uma foto ? Vai ficar com 3 colunas em branco.E o que vai acontecer se por força do destino, o motorista tiver agora 5 fotos, você vai ter que mudar a estrutura da sua tabela pra inserir mais uma coluna.Por esse motivo, não é recomendado usar a estrutura que você está usando, de criar 4 colunas. Pois pode acontecer um desses casos acima.Faz assim: Crie uma tabela da seguinte forma:Nome da Tabela: FotosMotColunas:IDTab - AutoNumerador e chave primáriaIDMot - Código do AutoNumerador e Chave Primária da tabela Motorista (Nesta tabela vai ter o nome do motorista, o CPF, RG, ... etc... ou seja, dados que não se repetem. Dados que sejam únicos pra cada pessoa.foto = Texto (40) - Nome/Caminho da foto do motoristanome = Texto (80) - Nome do Motorista ? (nao sei que campo é esse)email = Texto (40) - Email do Motorista ? (nao sei que campo é esse)Se esses campos forem o nome do motorista e o email, eu te sugiro a criar outra tabela pra receber esses dados.Entende ? Neste caso, você pode colocar quantas fotos quizer... pode ser 1 foto, como pode ser 20 fotos. você não vai ter um Banco de Dados com campos Vazios.Qualquer coisa, posta aí.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente... você está no caminho certo...

Posso te dar mais uma sugestão ?

 

O que vai acontecer com sua tabela de fotos, que contém 4 colunas, se o motorista tiver apenas uma foto ? Vai ficar com 3 colunas em branco.

E o que vai acontecer se por força do destino, o motorista tiver agora 5 fotos, você vai ter que mudar a estrutura da sua tabela pra inserir mais uma coluna.

 

Por esse motivo, não é recomendado usar a estrutura que você está usando, de criar 4 colunas. Pois pode acontecer um desses casos acima.

 

Faz assim: Crie uma tabela da seguinte forma:

 

Nome da Tabela: FotosMot

 

Colunas:

IDTab - AutoNumerador e chave primária

IDMot - Código do AutoNumerador e Chave Primária da tabela Motorista (Nesta tabela vai ter o nome do motorista, o CPF, RG, ... etc... ou seja, dados que não se repetem. Dados que sejam únicos pra cada pessoa.

nome = Texto (80) - Nome do Motorista ? (nao sei que campo é esse)

email = Texto (40) - Email do Motorista ? (nao sei que campo é esse)

foto = Texto (40) - Nome/Caminho da foto do motorista

 

Entende ? Neste caso, você pode colocar quantas fotos quizer... pode ser 1 foto, como pode ser 20 fotos. você não vai ter um Banco de Dados com campos Vazios.

 

Qualquer coisa, posta aí.

Entao...

no caso na minha tabela tem 4 fotos a serem enviadas e todas serao enviadas ao mesmo tempo!!!,

quando gravado no BD fotos ficara +- assim:

1 - idtab, 1-id moto q veio da tblmoto, /projeto/imagens/carros.jpg

2-idtab, 1-repetirao cod do moto pq e o mesmo moto, /projeto/imagens/foto.jpg

3-idtab, 1- """"" , /projeto/imagens/tiger.jpg

3- idtab,1- """"""""""""""" , /projeto/imagens/nuvem.jpg

 

 

entao quando eu fizer o select irei puxar o pelo cod do motorista, q por causa do relacionamento ira puxar tanto o cadastro quanto as fotos.

 

 

to certo ae.....

 

valeuuu!!!!!!!!!!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou montar um banco aqui, tem como me passar teu email, envio pra ti a estrutura... banco de dados ACCESS.Aguardo contato.Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou montar um banco aqui, tem como me passar teu email, envio pra ti a estrutura... banco de dados ACCESS.Aguardo contato.Att;

tala o email...qualquer coisa:::fer_nando_809@hotmail.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

Enviei ... veja ali como fiz o esquema das tabelas.Assim dessa maneira fica bom. você vai ter um banco enxuto, capite ?Após analizar, dá um toque aqui no tópico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Enviei ... veja ali como fiz o esquema das tabelas.Assim dessa maneira fica bom. você vai ter um banco enxuto, capite ?Após analizar, dá um toque aqui no tópico.

valeu ae pelo BD.sera muito util no meu projeto.

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.