Ir para conteúdo
Fórum Script Brasil
  • 0

Atualizar Registro


Steven Tyler

Pergunta

galera, seguinte, tenho uma pagina "editar.asp" e nessa pagina tem o seguinte formulario

<form onSubmit="return valida()" name="form1"  action="edit.asp" method="post">

<input type="hidden" name="codigo" value="<% = rs("codigo") %>">
<input type="hidden" name="nome_foto_bd" value="<% = rs("imagem") %>">


<tr>
<td colspan="2"><font class="texto">Nome:</td>
<td colspan="2"><input type="text" name="nome" size="50" value="<% = rs("nome") %>"></td>
</tr>

<tr>
<td colspan="2"><font class="texto">Setor:</td>
<td colspan="2"><input type="text" name="setor" size="50" value="<% = rs("setor") %>"></td>
</tr>

<tr>
<td colspan="2"><font class="texto">Cargo:</td>
<td colspan="2"><input type="text" name="cargo" size="50" value="<% = rs("cargo") %>"></td>
</tr>

<tr>
<td colspan="2"><font class="texto">Especialidade:</td>
<td colspan="2"><input type="text" name="especialidade" size="50" value="<% = rs("especialidade") %>"></td>
</tr>

<tr>
<td colspan="3">&nbsp;</td>
</tr>

<tr>

<td colspan="3" align="center"><img src="fotos_func/<% =rs("imagem") %>"></td>

</tr>

<tr>
<td colspan="2"><font class="texto">Foto:</td>
<td colspan="2"><input type="file" name="foto" size="40"></td>
</tr>

<tr>
<td colspan="2" width="20%">&nbsp;</td>
<td colspan="2"><INPUT TYPE="submit" name="botao" value="Atualizar Registro">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE="button" value="Voltar" onclick="history.back();"></td>
</tr>
</form>
esse formulario puxa do bd os dados de determinado registro... reparem q tem 2 "hidden" ai, são tipo paramentros para eu usar na pagina "edit.asp" q ta no action do form... então, nesse form tem um campo file q é a foto, nesse formulario, eu já to exibindo a foto do cliente já de cara p usuario, e se ele quiser alterar a foto, basta ele escolher outra atraves do campo "file".... a ideia é essa.... no edit.asp tem a seguinte condicao.... se o campo "file" for vazio faz uma atualizacao simples, q ate agora deu certo p mim, agora se tive preenchido o campo(tipo o ususrio escolheu uma outra foto no caso) dai faz a atualizacao junto de um upload.... dai q n da certo.... eis o código...
<!--#include file="conf.asp"-->
<!--#include file="upload_funcoes.asp"-->
<%
Response.expires = -10
Server.ScriptTimeout = 6000000
%>

<%
dim vnome,vcargo,vsetor,vespecialidade,vfoto_apagar,par_cod,conn,FSO,tipo_foto,caminho_foto,nome_foto,foto,MyFile,ScriptObject,sql_query,rs
%>

<% if request.form("foto") = "" then

	Set conn = Server.CreateObject("ADODB.Connection")

	conn.Open "DBQ=C:\Inetpub\wwwroot\site_asp\bdados.mdb;Driver={Microsoft Access Driver (*.mdb)}"

	par_cod = request.form("codigo")
	nome_foto_bd = request.form("nome_foto_bd")

	sql_query = "Update tbl_func set nome='" & request.form("nome") & "', setor='" & request.form("setor") & "', cargo = '" & request.form("cargo") & "', especialidade='" & request.form("especialidade") & "', imagem='" & nome_foto_bd & "' where codigo =" & par_cod 

	set rs = conn.Execute(sql_query) 


	conn.close
%>

	<script>
  alert("Dados alterados com sucesso!");
  location.href="funcionarios.asp";
	</script>

<%
else
%>

<% 

	'excluindo o arquivo
	Set FSO = Server.CreateObject("Scripting.FileSystemObject")
	FSO.DeleteFile "C:\Inetpub\wwwroot\site_asp\fotos_func\" & nome_foto_bd        


	' Chamando Funções, que fazem o Upload funcionar
	byteCount = Request.TotalBytes
	RequestBin = Request.BinaryRead(byteCount)
	Set UploadRequest = CreateObject("Scripting.Dictionary")
	BuildUploadRequest RequestBin



	vnome = UploadRequest.Item("nome").Item("Value")
	vsetor = UploadRequest.Item("setor").Item("Value")
	vcargo = UploadRequest.Item("cargo").Item("Value")
	vespecialidade = UploadRequest.Item("especialidade").Item("Value")

	par_cod = UploadRequest.Item("codigo").Item("Value")




	' Tipo de arquivo que esta sendo enviado
	tipo_foto = UploadRequest.Item("foto").Item("ContentType")

	' Caminho completo dos arquivos enviados
	caminho_foto = UploadRequest.Item("foto").Item("FileName")

	' Nome dos arquivos enviados
	nome_foto = Right(caminho_foto,Len(caminho_foto)-InstrRev(caminho_foto,"\"))

	' Conteudo binario dos arquivos enviados
	foto = UploadRequest.Item("foto").Item("Value")

	pasta = Server.MapPath("fotos_func")


	' Fazendo o Upload do arquivo selecionado
	if foto <> "" then
  Set 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)))
  	Next
  
  MyFile.Close
end if




	'conexao
	Set conn = Server.CreateObject("ADODB.Connection")
	conn.Open "DBQ=C:\Inetpub\wwwroot\site_asp\bdados.mdb;Driver={Microsoft Access Driver (*.mdb)}"


	'atualizando o registro

	sql_query = "Update tbl_func set nome='" & vnome & "', setor='" & vsetor & "', cargo = '" &  vcargo & "', especialidade='" & vespecialidade & "', imagem='" & nome_foto & "' where codigo =" & par_cod 

	set rs = conn.Execute(sql_query) 

	conn.close

%>



	<script>
  alert("Dados alterados com sucesso!");
  location.href="funcionarios.asp";
	</script>


<%
end if
%>

então pessoal, n sei o que ta havendo errado, porque quando atualizo o registro sem fazer upload de outra foto, faz certo, mais a ideia é q se o usuario quiser mudar a foto, ele apague a foto na pasta e coloque esta q ele escolheu, o erro n evidencia nada, só aparece escrito

HTTP 500 - erro interno do servidor

Internet Explorer

alguém pode me ajudar? !!!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

então, consegui faze funciona, mudei tudo a logica do codigo...

<!--#include file="conf.asp"-->
<!--#include file="upload_funcoes.asp"-->
<%
Response.expires = -10
Server.ScriptTimeout = 6000000
%>

<%
dim vnome,vcargo,vsetor,vespecialidade,vfoto_apagar,par_cod,conn,FSO,tipo_foto,caminho_foto,nome_foto,foto,MyFile,ScriptObject,sql_query,rs,nome_foto_bd

' Chamando Funções, que fazem o Upload funcionar
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest RequestBin

vnome = UploadRequest.Item("nome").Item("Value")
vsetor = UploadRequest.Item("setor").Item("Value")
vcargo = UploadRequest.Item("cargo").Item("Value")
vespecialidade = UploadRequest.Item("especialidade").Item("Value")
nome_foto_bd = UploadRequest.Item("nome_foto_bd").Item("Value")
par_cod = UploadRequest.Item("codigo").Item("Value")

if UploadRequest.Item("foto").Item("Value") <> "" then
	'excluindo o arquivo
	Set FSO = Server.CreateObject("Scripting.FileSystemObject")
	FSO.DeleteFile "C:\Inetpub\wwwroot\site_asp\fotos_func\" & nome_foto_bd        

	' Tipo de arquivo que esta sendo enviado
	tipo_foto = UploadRequest.Item("foto").Item("ContentType")

	' Caminho completo dos arquivos enviados
	caminho_foto = UploadRequest.Item("foto").Item("FileName")

	' Nome dos arquivos enviados
	nome_foto = Right(caminho_foto,Len(caminho_foto)-InstrRev(caminho_foto,"\"))

	' Conteudo binario dos arquivos enviados
	foto = UploadRequest.Item("foto").Item("Value")

	pasta = Server.MapPath("fotos_func")


	' Fazendo o Upload do arquivo selecionado
	if foto <> "" then
  Set 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)))
  	Next
  
  MyFile.Close
	'conexao
	Set conn = Server.CreateObject("ADODB.Connection")
	conn.Open "DBQ=C:\Inetpub\wwwroot\site_asp\bdados.mdb;Driver={Microsoft Access Driver (*.mdb)}"


	'atualizando o registro

	sql_query = "Update tbl_func set imagem='" & nome_foto & "' where codigo =" & par_cod 

	set rs = conn.Execute(sql_query) 

	conn.close
	end if
end if

	'conexao
	Set conn = Server.CreateObject("ADODB.Connection")
	conn.Open "DBQ=C:\Inetpub\wwwroot\site_asp\bdados.mdb;Driver={Microsoft Access Driver (*.mdb)}"


	'atualizando o registro

	sql_query = "Update tbl_func set nome='" & vnome & "', setor='" & vsetor & "', cargo = '" &  vcargo & "', especialidade='" & vespecialidade & "' where codigo =" & par_cod 

set rs = conn.Execute(sql_query) 
conn.close
%>
                <script>
  alert("Dados alterados com sucesso!");
  location.href="funcionarios.asp";
	</script>

mais valeu pela dica, n sabia essa ai do ie q você disse, valeu !!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      652k
×
×
  • Criar Novo...