Ir para conteúdo

POWERED BY:

Arquivado

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

Jow Xavier

[Resolvido] Update de imagem

Recommended Posts

Boa tarde eu tenho um update assim:

sql = "UPDATE produtos SET classificacao = '"&classificacao&"', cod_produto='"&cod_produto&"', descricao='"&descricao&"' WHERE id ="&id
que está atualizando OK.

 

Mas kero q atualize tbm a imagem

sql = "UPDATE produtos SET classificacao = '"&classificacao&"', cod_produto='"&cod_produto&"', descricao='"&descricao&"', foto = '"&foto&"' WHERE id ="&id
Mas ñ está atualizando está apagando o caminho do servidor onde está a minha imagem e inserindo o caminho q eu faço para chegar até ela. Pq occore isso ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao entendi exatamente

 

poe um exemplo na pratica do que ta ocorrendo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Mário acontece q eu insiro uma imagem sem problemas, mas eu gostaria de altera-lá ... e ñ estou conseguindo

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas entao

 

que parte nao consegue?

 

alterar imagens é basicamente

 

Gravar a nova imagem com upload no servidor

Selecionar o caminho da anterior e armazenar

Atualizar o novo caminho no db

Usar o caminho anterior para excluir a imagem anterior

 

Qual parte está ruim?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então se eu usar um insert na minha linha sql no lugar do meu update, eu insiro uma nova imagem, mas tá dando erro qd eu coloco o update ... E eu preciso alterar a imagem

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce entendeu os passos que te falei?

 

voce está se preocupando com o passo 3 e ainda nem fez o 1 e o 2

 

ou entao eu nao entendi o seu proposito

 

o que significa atualizar a imagem no seu sistema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então acontece assim eu passo o id cadastrado atrávés de um link para o formulário abrir o q foi clicado, então abre um formulario com os dados preenchidos do banco. Exatamento na hora de atualizar está o erro se eu usar o mesmo código q eu usei para inserir eu consigo inserir uma nova imagem, mas eu gostaria de inserir a imagem no lugar da outra imagem, fazer um update ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao tem que fazer o que disse mesmo

 

passo por passo

 

este inserir nova imagem é com upload?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É sim Mário, cara eu cheguei até esse essr:

Tipo de erro:
Objeto Request, ASP 0207 (0x80004005)
Não é possível usar a coleção Request.Form após chamar BinaryRead.
/visao_musical1/admin/altera_dados_produtos.asp, line 49
Estou resgatando o q está no meu formulário através de um Request.Form , mas ñ está aceitando o q eu posso usar no lugar do Request ??

 

Linha 49: id = Request.Form("id")

Compartilhar este post


Link para o post
Compartilhar em outros sites

é por isso

 

nao se usa o request normal

 

tem qeu usar o nome do objeto de upload

 

id = NOMEDOOBJETOUPLOAD.Form("id")

 

Para todos os campos assim

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok fi assim id = UploadRequest.form("id") ... então deu erro no form

então eu fia assim id = UploadRequest.Item("id").Item("id") ... Ai deu erro na minha linha do meu update

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o erro?

 

sempre post as mensagens de erro para evitar mais demoras

 

o nome do objeto é UploadRequest?

 

poe ai o trecho do codigo de upload e o trecho do formulario para comparar os nomes dos campos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia seu usar id = UploadRequest.form("id") o erro é esse:

Tipo de erro:

Erro de tempo de execução do Microsoft VBScript (0x800A01B6)

O objeto não dá suporte para a propriedade ou método: 'UploadRequest.form'

/visao_musical1/admin/altera_dados_produtos.asp, line 48

se eu usar assim:id = UploadRequest.Item("id").Item("id")

Tipo de erro:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[MySQL][ODBC 3.51 Driver][mysqld-5.0.51a-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
/visao_musical1/admin/altera_dados_produtos.asp, line 51
o erro é esse na linha
sql = "UPDATE produtos SET classificacao = '"&classificacao&"', cod_produto='"&cod_produto&"', descricao='"&descricao&"', foto = '"&cfoto&"' WHERE id ="&id
set tab = cnn.execute(sql)
Trecho do meu formulário:

<form name="form1" action="altera_dados_produtos.asp" method="post" enctype="multipart/form-data">
 
			 <table border="0" width="502">
				<tr> 
				  <td width="109" valign="top" class="titulo1">Classificação</td>
				  <td width="319"><input name="classificacao" type="text" class="formulario" value="<%=tab("classificacao")%>"></td>
				   </tr>
				   <tr>
				  <td width="109" valign="top" class="titulo1">Código Produto</td>
				  <td width="319"><input name="cod_produto" type="text" class="formulario" value="<%=tab("cod_produto")%>"></td>
				  </tr>
				   <tr>
				  <td width="109" valign="top" class="titulo1">Descrição</td>
				  <td width="319"><textarea name="descricao" cols="30" rows="5"><%=tab("descricao")%></textarea></td>
				  </tr>
				  <tr>
				  <td width="109" valign="top" class="titulo1">Foto:</td>
				  <td width="319"><a onmouseover="doTooltip(event,0)" onmouseout="hideTip()"><input name="foto" type="file" class="formulario" value="<%=tab("cod_produto")%>"></a>
				  <input type="hidden" name="id" value="<%=tab("id")%>"></td>			   
					</tr>
				<tr> 
				  <td> 
					<input name="enviar" type="submit" class="formulario" value="Alterar">
					</td>
				  </tr>
			  </table>
			
	  </form>
E o trecho de código de upload

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

' Recuperando os Dados Digitados ----------------------
classificacao = UploadRequest.Item("classificacao").Item("Value")
cod_produto = UploadRequest.Item("cod_produto").Item("Value")
descricao = UploadRequest.Item("descricao").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 onde as imagens serao guardadas
pasta = Server.MapPath("imagens/")
nome_foto = "/"&nome_foto

' pasta + nome dos arquivos
cfoto = "imagens" + nome_foto

' 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

E tenho essa página de upload das funções:

<%
' Upload Sem componentes ---------------------------------------
Sub BuildUploadRequest(RequestBin)
on error resume next

PosBeg = 1
PosEnd = 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 UploadControl
Set UploadControl = CreateObject("Scripting.Dictionary")

Pos = InStrB(BoundaryPos, RequestBin, getByteString("Content-Disposition"))
Pos = InStrB(Pos, RequestBin, getByteString("name="))
PosBeg = Pos + 6
PosEnd = 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) Then
PosBeg = PosFile + 10
PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(34)))
FileName = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg))
UploadControl.Add "FileName", FileName
Pos = InStrB(PosEnd, RequestBin, getByteString("Content-Type:"))
PosBeg = Pos + 14
PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(13)))
ContentType = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg))
UploadControl.Add "ContentType", ContentType
PosBeg = PosEnd + 4
PosEnd = InStrB(PosBeg, RequestBin, boundary) - 2
Value = MidB(RequestBin, PosBeg, PosEnd - PosBeg)
Else
Pos = InStrB(Pos, RequestBin, getByteString(Chr(13)))
PosBeg = Pos + 4
PosEnd = InStrB(PosBeg, RequestBin, boundary) - 2
Value = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg))
End If

UploadControl.Add "Value", Value
UploadRequest.Add Name, UploadControl
BoundaryPos = InStrB(BoundaryPos + LenB(boundary), RequestBin, boundary)
Loop
End Sub

Function getByteString(StringStr)
For i = 1 To Len(StringStr)
Char = Mid(StringStr, i, 1)
getByteString = getByteString & ChrB(AscB(Char))
Next
End Function

Function getString(StringBin)
getString = ""
For intCount = 1 To LenB(StringBin)
getString = getString & Chr(AscB(MidB(StringBin, intCount, 1)))
Next
End Function

' Fim upload sem Componentes -----------------------------------------
%>

onde eu uso como include no meu formulário de inserção e alteração de dados !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae Mário graças a você eu consegui cara ... tá atualizando as minhas imagens belezinha. eu só passei o id do meu banco de dados assim: id = UploadRequest.Item("id").Item("Value") ... ValeuUuUuU mesmo ... Resolveu um problemão hehehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem como você postar o script da página de upload inteirinho? Tô usando o mesmo script que você e não consigo atualizar a imagem. o erro que aparece é este:

CODE
Não é possível exibir a página

Ocorreu um problema com a página que você está tentando acessar e não é possível exibi-la.

 

Experimente o seguinte:

 

* Clique no botão Atualizar ou tente novamente mais tarde.

* Abra a localhost home page e procure os links para as informações desejadas.

 

HTTP 500.100 - Servidor interno Erro - erro do ASP

Internet Information Services

 

Informações técnicas (para a equipe de suporte)

 

* Tipo de erro:

Active Server Pages, ASP 0113 (0x80004005)

O tempo máximo de execução de um script foi excedido. Você pode alterar esse limite especificando um novo valor para a propriedade Server.ScriptTimeout ou alterando o valor nas ferramentas de administração do IIS.

/azzurra/web/novosite/intranet/altera1.asp

 

* Tipo de navegador:

Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14

 

* Página:

POST 2394 bytes to /azzurra/web/novosite/intranet/altera1.asp

 

* POST Data:

erro '80020009'

 

Exceção.

 

/iisHelp/common/500-100.asp, line 223

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opá brother tá ai:

<!-- #include file = "upload_funcoes.asp" -->
<%
' Chamando Funções, que fazem o Upload funcionar
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest RequestBin

' Recuperando os Dados Digitados ----------------------
classificacao = UploadRequest.Item("classificacao").Item("Value")
cod_produto = UploadRequest.Item("cod_produto").Item("Value")
descricao = UploadRequest.Item("descricao").Item("Value")
id = UploadRequest.Item("id").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 onde as imagens serao guardadas
pasta = Server.MapPath("imagens/")
nome_foto = "/"&nome_foto

' pasta + nome dos arquivos
cfoto = "imagens" + nome_foto

' 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 %>
<!--#include file="config/conexao.asp"-->
<%

call abre_conectar


'id = Request.Form("id")

'não vou permitir a alteração da foto senão você ja viu néw
'strQuery = "UPDATE contato SET nome = '"&nome&"', telefone='"&telefone&"', email='"&email&"', comentario='"&comentario&"', foto = '"&foto&"' WHERE autonum ="&autonum
sql = "UPDATE produtos SET classificacao = '"&classificacao&"', cod_produto='"&cod_produto&"', descricao='"&descricao&"', foto = '"&cfoto&"' WHERE id ="&id

'Caso ocorra um erro esta função de erro será chamada
On error Resume Next
'Executaa inserção no Banco de Dados 
set tab = cnn.execute(sql)
'Fecha o Objeto de Conexão
call fecha_conectar
set tab = nothing 
if err = 0 Then
	'Redireciona o usuário caso não tenha ocorrido erro na transação
	response.redirect "menu.asp"
end if
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse é o código que uso para atualizar os dados:

 

CODE
<!-- #include file="Upload.inc" -->

<%If session("usr_log_ok")="" Then

Response.Write "Você está Logado no sistema!"

Response.write "<a href='login.asp'>Clique aqui para se logar.</a>"

Session("pagina_restrita") = Request.ServerVariables("SCRIPT_NAME")&"?"&request.ServerVariables("QUERY_STRING")

Response.End()

End If

set conexao = Server.CreateObject("ADODB.Connection")

conexao.provider= "Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("../bd/azzurra.mdb")&";"

conexao.open

SQL = "select * from usuarios where id_usuario ="&session("usr_log_ok")

Set RS = Conexao.Execute(SQL)

If rs.eof then

Response.write "Ocorreu um erro ao se logar no sistema!"

end if %>

<%

 

' Chamando Funções, que fazem o Upload funcionar

byteCount = Request.TotalBytes

RequestBin = Request.BinaryRead(byteCount)

Set UploadRequest = CreateObject("Scripting.Dictionary")

BuildUploadRequest RequestBin

 

' Recuperando os Dados Digitados ----------------------

cod_produto = UploadRequest.Item("cod_produto").Item("Value")

nome_produto = UploadRequest.Item("nome_produto").Item("Value")

descricao = UploadRequest.Item("descricao").Item("Value")

cod_categoria = UploadRequest.Item("cod_categoria").Item("Value")

cod_subcategoria = UploadRequest.Item("cod_subcategoria").Item("Value")

motor = UploadRequest.Item("motor").Item("Value")

voltagem = UploadRequest.Item("voltagem").Item("Value")

detalhe = UploadRequest.Item("detalhe").Item("Value")

 

' Tipo de arquivo que esta sendo enviado

tipo_foto = UploadRequest.Item("foto").Item("ContentType")

tipo_foto1 = UploadRequest.Item("foto1").Item("ContentType")

 

' Caminho completo dos arquivos enviados

caminho_foto = UploadRequest.Item("foto").Item("FileName")

caminho_foto1 = UploadRequest.Item("foto1").Item("FileName")

 

' Nome dos arquivos enviados

nome_foto = Right(caminho_foto,Len(caminho_foto)-InstrRev(caminho_foto,"\"))

nome_foto1 = Right(caminho_foto1,Len(caminho_foto1)-InstrRev(caminho_foto1,"\"))

 

' Conteudo binario dos arquivos enviados

foto = UploadRequest.Item("foto").Item("Value")

foto1 = UploadRequest.Item("foto1").Item("Value")

 

' pasta onde as imagens serao guardadas

pasta = Server.MapPath("../imagem/")

nome_foto = "/"&nome_foto

nome_foto1 = "/"&nome_foto1

 

' pasta + nome dos arquivos

cfoto = "../imagem" + nome_foto

cfoto1 = "../imagem" + nome_foto1

 

' 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

 

if foto1 <> "" then

Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")

Set MyFile = ScriptObject.CreateTextFile(pasta & nome_foto1)

For i = 1 to LenB(foto1)

MyFile.Write chr(AscB(MidB(foto1,i,1)))

Next

MyFile.Close

end if

 

' Conecta-se ao Banco de Dados

url_conexao = Server.MapPath("../bd/azzurra.mdb")

set conexao = Server.CreateObject("ADODB.Connection")

conexao.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&url_conexao

 

 

'cod_produto = request.Form("cod_produto")

'nome_produto = request.form("nome_produto")

'descricao = request.Form("descricao")

'detalhe = request.Form("detalhe")

'cod_categoria = request.Form("cod_categoria")

'cod_subcategoria = request.Form("cod_subcategoria")

'response.Write(""&cod_produto&"")

'motor = request.Form("motor")

'voltagem = request.form("voltagem")

'foto = request.Form("foto")

'foto1 = request.Form("foto1")

sql = "update produto set nome_produto='"&nome_produto&"', descricao='"&descricao&"', detalhe='"&detalhe&"', cod_categoria='"&cod_categoria&"', cod_subcategoria='"&cod_subcategoria&"', motor='"&motor&"', voltagem='"&voltagem&"', img_produto='"&cfoto&"', explodida='"&cfoto1&"' where cod_produto="&cod_produto&""

set rs = db.execute(sql)

response.redirect "admin.asp?pagina=" & Request.QueryString("pagina")

rs.close

db.close

set rs = nothing

set db = nothing

 

%>

<meta name="generator" content="Namo WebEditor v5.0">

<title>..::..Azzurra Representações - Sistema Administrativo..::..</title>

<style TYPE="text/css">

<style TYPE="text/css">

<!--

BODY {

scrollbar-face-color: FFFFFF;

scrollbar-arrow-color: 000000;

scrollbar-base-color: 000000;

scrollbar-shadow-color: FFFFFF;

scrollbar-dark-shadow-color: 000000;

scrollbar-highlight-color: FFFFFF;

scrollbar-3d-light-color: 000000}

//-->

</STYLE>

<STYLE>

A:link { Color:#666666 ;TEXT-DECORATION: none }

A:visited { Color:#666666 ;TEXT-DECORATION: none }

A:active { Color:#666666 ;TEXT-DECORATION: none }

A:hover { Color:#01A8E0 ;TEXT-DECORATION: underline }

</STYLE>

<body>

<p> </p>

 

E não funfa, o erro que dá é esse:

 

CODE

Não é possível exibir a página

Ocorreu um problema com a página que você está tentando acessar e não é possível exibi-la.

 

Experimente o seguinte:

 

* Clique no botão Atualizar ou tente novamente mais tarde.

* Abra a localhost home page e procure os links para as informações desejadas.

 

HTTP 500.100 - Servidor interno Erro - erro do ASP

Internet Information Services

 

Informações técnicas (para a equipe de suporte)

 

* Tipo de erro:

Active Server Pages, ASP 0113 (0x80004005)

O tempo máximo de execução de um script foi excedido. Você pode alterar esse limite especificando um novo valor para a propriedade Server.ScriptTimeout ou alterando o valor nas ferramentas de administração do IIS.

/azzurra/web/novosite/intranet/altera1.asp

 

* Tipo de navegador:

Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14

 

* Página:

POST 2394 bytes to /azzurra/web/novosite/intranet/altera1.asp

 

* POST Data:

erro '80020009'

 

Exceção.

 

/iisHelp/common/500-100.asp, line 223

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, para inserir a imagem na pasta não há problema, entretanto, tô usando o mesmo script para fazer a atualização da imagem e não funciona. O código está igual ao seu e não rola.

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.