Inquiridor
Fazer update em imagem!

Pergunta
-
Olá galera to com uma duvida..
Como que eu faço um update em imagem..e o seguinte eu tenho um formulario onde o cliente tem a opção de trocar a imagem quando click procurar....
Como que eu faço isso..
Ai vai meu codigo!!
<html>
<head>
<title>Cadastro </title>
<script language="javascript">
function valida_campo()
{
<!--
var nome = document.form.nome.value
if (nome==""){
alert("Informe o seu nome!");
document.form.nome.focus()
return false
}
var telefone = document.form.telefone.value
if (telefone==""){
alert("Informe o seu telefone!");
document.form.telefone.focus()
return false
}
var email=document.form.email.value;
if (email==""){
alert("Informe o seu email!")
document.form.email.focus()
return false
}
}
function confere(){
if (document.form.email.value.indexOf('@', 0) == -1 || document.form.email.value.indexOf('.', 0) == -1){ alert("E-mail invalido!");
document.form.email.focus()
}
}
//-->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<LINK REL=stylesheet HREF="liks_etc.css" TYPE="text/css">
<head><%
On error resume Next
Dim objConn, stringSQL, strConnection, id, strDBPath
id = Request.QueryString("radio")
' Conectando com o banco de dados contato.mdb
Set objConn = Server.CreateObject("ADODB.Connection")
Set objRS = Server.CreateObject("ADODB.Connection")
'objConn.Open "DBQ=" & Server.MapPath("contato.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"
strDBPath = Server.MapPath("contato.mdb")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & ";"
stringSQL = "SELECT * FROM contato WHERE autonum = "&id
Set objRS = objConn.Execute(stringSQL)
'Deletando registro da tabela contato onde esta a id
if err <> 0 Then%>
<div align="center"><b>
<font size="2" color="#FF0000" face="Verdana, Arial, Helvetica, sans-serif">Ocorreu
algum erro!</font><font face="Verdana, Arial, Helvetica, sans-serif"><font size="2"><br>
</font>
<a href="BLOCKED SCRIPThistory.back(-1)">Volta</a></font></b><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><a href="BLOCKED SCRIPThistory.back(-1)"></a></font></div>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<%else%>
<table width="39%" border="0" align="center" cellpadding="2" cellspacing="2">
<tr align="center">
<td width="19%" height="20" bgcolor="#f5f5f5"> <div align="center"><font color="#000099"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><a href="form_inclusao.asp" class="menu">
<font color="#0000FF">Incluir</font></a></font></b></font></div></td>
<td bgcolor="#f5f5f5" width="29%"> <div align="center"><font color="#000099"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><a href="form_exclui.asp" class="menu">
<font color="#0000FF">Excluir</font></a></font></b></font></div></td>
<td width="18%" bgcolor="#f5f5f5"> <div align="center"><font color="#000099"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><a href="procura.asp" class="menu">
<font color="#0000FF">Pesquisar</font></a></font></b></font></div></td>
<td bgcolor="#f5f5f5" width="52%"> <div align="center"><font color="#000099"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><a href="escolhe_pra_auterar.asp" class="menu">
<font color="#0000FF">Volta</font></a></font></b></font></div></td>
</tr>
</table>
<div align="center"></div>
<form method="post" action="altera_dados.asp" name="form" onSubmit="return valida_campo()">
<div align="center">
<center>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><table width="505
" height="18" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="413" height="1" align="center" bgcolor="#4169E1">
<b>
<font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFF00">
<span style="background-color: #4169E1"> Cadastro On - Line</span></font></b></td>
</tr>
</table></td>
</tr>
</table>
<table border="0" width="589" bgcolor="F5F5F5">
<tr>
<td bgcolor="#FFFFE6"><font size="2" face="Verdana" color="0000cc">Foto/URL:</font></td>
<td bgcolor="#FFFFE6">
<!-- <input name="foto" type="text" id="foto" style="font-family: Verdana; font-size: 8 pt;COLOR: 0000CC;" value="<'%=objRS("foto")%>" size="54"> -->
<input type="file" name="arquivo[]" style="font-family: Verdana; font-size: 8 pt;COLOR: 0000CC;" size="30" ></td>
</tr>
<tr>
<td width="89" bgcolor="#FFFFE6"><font size="2" face="Verdana" color="0000cc">Nome:</font></td>
<td width="490" bgcolor="#FFFFE6">
<input type="text" name="nome" size="34" style="font-family: Verdana; font-size: 8 pt;COLOR: 0000CC;" value='<%=objRS("nome")%>'"> </td>
</tr>
<tr>
<td width="89" bgcolor="#FFFFE6"><font size="2" face="Verdana" color="0000cc">E-mail:</font></td>
<td width="490" bgcolor="#FFFFE6">
<input type="text" name="email" size="49" style="font-family: Verdana; font-size: 8 pt; COLOR: 0000CC;" value="<%=objRS("email")%>" onBlur="confere()"> </td>
</tr>
<tr>
<td width="89" bgcolor="#FFFFE6"><font size="2" face="Verdana" color="0000cc">Telefone:</font></td>
<td width="490" bgcolor="#FFFFE6">
<input type="text" name="telefone" size="23" style="font-family: Verdana; font-size: 8 pt;COLOR: 0000CC;" value="<%=objRS("telefone")%>"> </td>
</tr>
<tr>
<td width="89" bgcolor="#FFFFE6"><font size="2" face="Verdana" color="0000cc">Comentário:</font></td>
<td width="490" bgcolor="#FFFFE6">
<textarea rows="4" name="comentario" cols="46" style="font-family: Verdana; font-size: 8 pt;COLOR: 0000CC;"><%=objRS("comentario")%></textarea>
<input type="hidden" name="autonum" value="<%=objRS("autonum")%>"> </td>
</tr>
<tr bgcolor="#FFFFE6">
<td colspan="2"> <p align="center">
<input type="submit" value="Alterar" name="enviar">
</td>
</tr>
</table>
</center>
</div>
</form>
<%end if%>
</td>
</tr>
</table>
</body>
</html>abraço.
Emerson Sobral
Todas as Respostas
-
Ei moco blz.
Olha tem várias formas de fazer, se eu tiver entendido bem ne...
Eu faco desse jeito acho que é o mais simples.
<%
Dim nmArquivo
Dim objFile
nmArquivo = "NovoNome.jpg" //faça dinamico eu fiz fixo pq é um exemplo
if not IsEmpty(Request.Form("foto")) then
set objFile = Server.CreateObject("Scripting.FileSystemObject")
Call objFile.CopyFile(Request.Form("foto"),nmArquivo,True)
end if
%>
<html>
<head>
<title>Teste de copia</title>
</head>
<body>
<form action="self.asp" method="post" name="meuFormulario">
<input type="file" value="" name="foto" />
<input type="submit" value="Salvar Foto" />
</form>
</body>
</html>
peguei um código meu que funciona usando esse recurso e dei uma simplificada no processo, acredito que funcione, tenta ai e ve se é mais ou menos isso que vc deseja mesmo.
pergunta vc vai querer gravar isso em BD? ou basta salvar o caminho no banco? ou nem vai ter banco na jogada? vendo seu código eu não sei tudo que vc quer fazer, mas espero ter ajudado em alguma coisa!! =D
Ae ja ia esquecendo o parametro booleano do CopyFile define se é ou nao para sobrescrever o arquivo na ora de copiar assim quando for editar seu registro ele atualizaria a foto no sitema desde que vc mandasse sobrescrever a foto antiga.
Qualquer coisa tamu aqui! -
-
Cara, não sei qual vai ser a aplicabilidade final do seu sistema mas ai vai uma dica.
. Caso seus sistema vá gravar imagens ou qualquer outro recurso visual é mais legal gravar somente o caminho do arquivo no banco de dados e salvar o arquivo no servidor com o código que lhe passei acima, isso pelo fato de banco de dados na web ser caro, e da mão de obra que dá manipular campos do tipo binario em banco de dados.
Pra ser mais ilustrativo seria assim:
Tipo uma página de administração de fotos de um site de festas rsrs.
Você disponibiliza um formulário pro cara, onde ele coloca a descrição da foto, e atravez de um campo do tipo "file" aponta para o arquivo da foto, ok.
Dado o submit na página, voce vai pegar este caminho e vai salvar normalmente em banco de dados.
Depois você aplica o obj FileSystemObject para copiar a foto para o servidor do site.
Quando você for carregar suas fotos, leia o caminho e as crie dinamicamente na página, pois elas irão existir no servidor.
Não sei se deu pra intender.
Caso você realmente precise salvar em banco me da idéia que eu tento bolar alguma coisa aqui para exemplificar, ia ser maneiro se você descrevesse direitinho o que você quer fazer na página.
=D -
Não entendi..
Pode me ajudar..
Ai vai minha pag de procura.asp
Da uma olhada no cod!
<%
Dim strURL
Dim cnnSearch
Dim rstSearch
Dim strDBPath
Dim strSQL
Dim strSearch
inicio = Timer
'#Função que tira todos os acentos das palavras
function TiraAcento(StrAcento)
for i = 1 to len(StrAcento)
Letra = mid(StrAcento, i, 1)
Select Case Letra
Case "á","Á","à","À","ã","Ã","â","Â","â","ä","Ä"
Letra = "A"
Case "é","É","ê","Ê","Ë","ë","È","è"
Letra = "E"
Case "í","Í","ï","Ï","Ì","ì"
Letra = "I"
Case "ó","Ó","ô","Ô","õ","Õ","ö","Ö","ò","Ò"
Letra = "O"
Case "ú","Ú","Ù","ù","ú","û","ü","Ü","Û"
Letra = "U"
Case "ç","Ç"
Letra = "C"
Case "ñ"
Letra = "N"
End Select
texto = texto & Letra
next
TiraAcento = texto
end function
strURL = Request.ServerVariables("URL")
strSearch = Request.QueryString("search")
%><title>Cadastro em ASP com foto</title>
<p> </p>
<table width="69%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#F2FFF2">
<tr>
<td><table width="100%" border="0" cellspacing="2" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><table width="44%" border="0" align="center" cellpadding="2" cellspacing="2">
<tr align="center">
<td bgcolor="#f5f5f5" width="35%"> <div align="center"><font color="#000099"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><font color="#CCCCCC"><a href="form_inclusao.asp">Incluir</a></font></font></b></font></div></td>
<td bgcolor="#f5f5f5" width="30%"> <div align="center"><font color="#000099"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><a href="form_exclui.asp" class="menu">Excluir</a></font></b></font></div></td>
<td width="18%" bgcolor="#f5f5f5"> <div align="center"><font color="#000099"><b><font color="#999999" size="2" face="Verdana, Arial, Helvetica, sans-serif">Pesquisar</font></b></font></div></td>
<td bgcolor="#f5f5f5" width="35%"> <div align="center"><font color="#000099"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#CCCCCC"><a href="escolhe_pra_auterar.asp" class="menu">Alterar</a></font></b></font></div></td>
</tr>
</table>
<p align="center"><FONT color=royalblue face=Tahoma><STRONG>
<font color="#0000FF" size="2">
Pesquisa de cadastro com foto (</font><i><font color="#0000FF" size="1">Informe
um critério para pesquisa</font></i><font color="#0000FF" size="2">)</font></STRONG></FONT></p>
<form action="<%= strURL %>" method="get">
<div align="center">
<input name="search" value="<%= strSearch %>" size="20" />
<input name="submit" type="submit" value="Pesquisar" />
</div>
</form>
<p align="center">
<%
If strSearch <> "" Then
strDBPath = Server.MapPath("contato.mdb")
Const adUseClient = 3
Set cnnSearch = Server.CreateObject("ADODB.Connection")
cnnSearch.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & ";"
cnnSearch.CursorLocation = adUseClient
strSQL = "SELECT nome, telefone, email, foto " _
& "FROM contato " _
& "WHERE telefone LIKE '%" & TiraAcento(Replace(strSearch, "'", "''")) & "%' " _
& "OR email LIKE '%" & TiraAcento(Replace(strSearch, "'", "''")) & "%' " _
& "ORDER BY nome;"
Set rstSearch = cnnSearch.Execute(strSQL)
intContador = rstSearch.RecordCount
%>
</p></td>
</tr>
</table>
<p align="center"><br>
<font face="Verdana, Arial, Helvetica, sans-serif" size="1">( Foram encontradas <b><%=intContador%></b>
ocorrências )</font></p>
<div align="center">
<table width="500" border="0" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<th width="123" bgcolor="#4169E1"><FONT color=royalblue face=Tahoma size=2><STRONG><font color="#FFFF00">Nome</font></STRONG></FONT></th>
<th width="64" bgcolor="#4169E1"><FONT color=royalblue face=Tahoma size=2><STRONG><font color="#FFFF00"> Email</font></STRONG></FONT></th>
<th width="114" bgcolor="#4169E1"><FONT color=royalblue face=Tahoma size=2><STRONG><font color="#FFFF00">Fone</font></STRONG></FONT></th>
<th width="162" bgcolor="#4169E1"><FONT color=royalblue face=Tahoma size=2><STRONG><font color="#FFFF00">Foto</font></STRONG></FONT></th>
</tr>
<%
Do While Not rstSearch.EOF
%>
<tr>
x
<td bgcolor="#FFFFE6">
<div align="left">
<font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%= rstSearch.Fields("Nome").Value %></font></div></td>
<td bgcolor="#FFFFE6">
<div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%= rstSearch.Fields("email").Value %></font></div></td>
<td bgcolor="#FFFFE6">
<div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%= rstSearch.Fields("telefone").Value %></font></div></td>
<td bgcolor="#FFFFE6">
<div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><img src="<%=rstSearch("foto")%>" alt=""></font></div></td>
</tr>
<%
rstSearch.MoveNext
Loop
%>
</table>
<b><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><br>
Sua busca foi processada em
<%response.write FormatNumber( Timer - inicio, 2 )%>
segundos.</font></b><br>
<%
rstSearch.Close
Set rstSearch = Nothing
cnnSearch.Close
Set cnnSearch = Nothing
End If
%>
</div></td>
</tr>
</table>Abraço..
Emerson Sobral.
-
Aqui vai minha outra tela!
escolhe_pra_auterar.asp
olha o cod!!
<%
Option Explicit
Response.Expires = 0
Dim objConn, objRs, strQuery, strConnection,strDBPath
'Conectando com o banco de dados contato.mdb
Set objConn = Server.CreateObject("ADODB.Connection")
'objConn.Open "DBQ=" & Server.MapPath("contato.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"
strDBPath = Server.MapPath("contato.mdb")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & ";"
'Seleciona da tabela contato
strQuery = "SELECT * FROM contato"
Set ObjRs = objConn.Execute(strQuery)
%>
<html>
<LINK REL=stylesheet HREF="liks_etc.css" TYPE="text/css">
<head>
<title>Consulta</title>
</head>
<body bgcolor="#FFFFFF">
<div align="center" style="width: 910; height: 164">
<p> </p>
<table width="719" border="0" cellspacing="0" cellpadding="0" height="1" align="center">
<tr>
<td width="762" valign="top" height="136">
<table border="0" cellpadding="0" cellspacing="0" width="681" align="center">
<tr bgcolor="ffffff">
<td colspan="3" width="762">
<table width="100%" border="0" cellspacing="2" cellpadding="2">
<tr>
<td width="18%" height="21" bgcolor="#f5f5f5">
<div align="center"><font color="#000099"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><a href="form_inclusao.asp" class="menu">Incluir</a></font></b></font></div></td>
<td width="18%" bgcolor="#f5f5f5"> <div align="center"><font color="#000099"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#CCCCCC"><a href="form_exclui.asp" class="menu"><font color="#000099">Excluir</font></a></font></b></font></div></td>
<td width="18%" bgcolor="#f5f5f5"> <div align="center"><font color="#000099"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><a href="procura.asp" class="menu">Pesquisar</a></font></b></font></div></td>
<td width="18%" bgcolor="#f5f5f5"> <div align="center"><font color="#000099"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#CCCCCC">Alterar</font></b></font></div></td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="3" width="762">
<table width="762" border="0" cellspacing="0" cellpadding="0" height="18">
<tr>
<td align="center" height="1" width="762"> <font face="Verdana, Arial, Helvetica, sans-serif" color="#000099" size="3"><b><br>
</b> </font><b>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">Selecione o
registro a ser
alterado</font></b></td>
</tr>
</table>
<form method="GET" action="form_altera.asp">
<table width="736" border="0" cellspacing="0" cellpadding="0" height="1">
<tr>
<td height="1" align="center" width="734">
<table width="688" height="63" border="0" align="center" cellpadding="1" cellspacing="1" bgcolor="#CCCCCC">
<tr bgcolor="#FF6600">
<td width="1" height="2" align="center" bgcolor="#4169E1">
<font size="1" color="#FFFF00"><b><font face="Verdana">Nº:</font></b>
</font></td>
<td width="251" height="2" align="center" bgcolor="#4169E1">
<font size="1" color="#FFFF00"><b><font face="Verdana">Nome:</font></b>
</font></td>
<td width="57" align="center" bgcolor="#4169E1">
<font size="1" color="#FFFF00"><b><font face="Verdana">Time:</font></b> </font></td>
<td width="64" height="2" align="center" bgcolor="#4169E1">
<p align="right"> <font size="1" color="FFFFFF">
<input type="submit" name="Submit" value="Alterar">
</font></td>
</tr>
<%While Not objRS.EOF%>
<tr bgcolor="#FFFFE6">
<td width="1" height="2" align="center" bgcolor="#FFFFE6">
<div align="left"><font size="1"><b><font face="Verdana, Arial, Helvetica, sans-serif" color="#000000">
<%Response.write objRS("autonum")%>
</font> </b></font></div></td>
<td width="251" height="2" align="center">
<div align="left"><font size="1"><b><font face="Verdana, Arial, Helvetica, sans-serif" color="#000000">
<%Response.write objRS("nome")%>
</font> </b></font></div></td>
<td width="57" align="center" bgcolor="#FFFFE6">
<font size="1"><b>
<font face="Verdana, Arial, Helvetica, sans-serif" color="#000066" size=""><img src="<%=objRS("foto")%>" alt="Imagem não disponível"></font><font face="Verdana, Arial, Helvetica, sans-serif" color="#000000">
</font></b></font></td>
<td width="64" height="2" align="center">
<div align="center"><font size="1"><b><font face="Verdana, Arial, Helvetica, sans-serif" color="#000000">
<input type="radio" name="radio" value="<%=objRS(0)%>">
</font> </b></font></div></td>
</tr>
<%
' MOVE PARA O PRÓXIMO REGISTRO.
objRS.MoveNext
Wend
' FECHANDO AS CONEXÕES.
objRs.close
objConn.close
Set objRs = Nothing
Set objConn = Nothing
%>
</table>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</body>
</html> -
Cara pelo que vi vc fez mais ou menos do jeito que eu falei.
Agora eu não vi aonde você faz o cadastro dos seus contatos, você me passou apenas a tela de consulta e a de alteração no contato.
Mas deu para perceber uma coisa:
Code Snippet<img src="<%=rstSearch("foto")%>" alt="">
Essa linha de código mostra que você ja faz o que falei, salva o caminha da imagem no servidor e o impre dentro do atributo SRC da tag IMG, é isso mesmo.
O que eu quiz dizer no outro post é que alguns sistemas custumam salvam as imagens em banco de dados, ou seja tem um campo dentro da sua entidade capaz de armazenar valores binarios, só que é mo chato de trabalhar sem conta que o custo benefício (no caso WEB) não nem de longe válido.
Aproveitando, aquele exemplo que te passei não funcionará muito bem não =(, depois que fui ver que ele só funciona se o cliente for o servidor da aplicação WEB. aff ne aahuah foi mau.
Aqui vou te postar um código aqui da minha empresa huahauhah funciona é complicadinho mas bem funcional, esperamenta ajustar ele, ta ok. -