Ir para conteúdo

Arquivado

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

lucasmoraes

erro inserir dados com upload de imagem

Recommended Posts

pessoal boa tarde, estou com um problema tenho uma pagina que cadastra produtos e faz o upload de uma imagem do produto.

estou tentando cadastrar mas me retorna esse erro

Microsoft VBScript runtime error '800a0005'

 

Invalid procedure call or argument

 

/eletronicosstore/admin/cad_produto.asp, line 60

minha pagina que envia o form

<div id="cadastroProduto">
 <form action="cad_produto.asp" method="post" enctype="multipart/form-data" name="formCadastroProdutos" id="formCadastroProdutos">
   <table width="100%" border="0" cellspacing="2" cellpadding="2">
     <tr>
       <td colspan="3" bgcolor="#6f8992" class="titulos">  Cadastrar Produto</td>
     </tr>
     <tr>
       <td width="22%" bgcolor="#FFFFFF"><span class="textosform">Nome</span> <span class="asterisco">*</span></td>
       <td width="78%" colspan="2" align="left" bgcolor="#FFFFFF"><input name="NomeProduto" type="text" id="NomeProduto" size="50" /></td>
     </tr>
     <tr>
       <td bgcolor="#FFFFFF"><span class="textosform">Categoria</span> <span class="asterisco">*</span></td>
       <td colspan="2" align="left" bgcolor="#FFFFFF"><select name="txt_categoria" id="txt_categoria">
         <%
			sqlCategorias = "select * from categorias ORDER BY idcategoria ASC"
			Set rsCategorias = conn.execute(sqlCategorias)
			if rsCategorias.eof then
				response.Write("-------------")
			else
				while not rsCategorias.eof
		%>
         <option value="<%= rsCategorias("idcategoria")%>"><%= rsCategorias("categoria") %></option>
         <%
			rsCategorias.MoveNext
			wend
			end if
		%>
       </select></td>
     </tr>
     <tr>
       <td bgcolor="#FFFFFF"><span class="textosform">Fabricante</span> <span class="asterisco">*</span></td>
       <td colspan="2" align="left" bgcolor="#FFFFFF"><input name="FabricanteProduto" type="text" id="FabricanteProduto" size="50" /></td>
     </tr>
     <tr>
       <td bgcolor="#FFFFFF"><span class="textosform">Descrição</span> <span class="asterisco">*</span></td>
       <td colspan="2" align="left" bgcolor="#FFFFFF"><label for="DescProduto"></label>
         <textarea name="DescProduto" id="DescProduto" cols="45" rows="5"></textarea></td>
     </tr>
     <tr>
       <td bgcolor="#FFFFFF"><span class="textosform">Dados Técnicos</span><span class="asterisco"> *</span></td>
       <td colspan="2" align="left" bgcolor="#FFFFFF"><textarea name="DadosTecProduto" id="DadosTecProduto" cols="45" rows="5"></textarea></td>
     </tr>
     <tr>
       <td bgcolor="#FFFFFF"><span class="textosform">Preço</span><span class="asterisco"> *</span></td>
       <td colspan="2" align="left" bgcolor="#FFFFFF"><input name="PrecoProduto" type="text" id="PrecoProduto" value="R$" size="20" /></td>
     </tr>
     <tr>
       <td bgcolor="#FFFFFF" class="textosform">Promoção</td>
       <td colspan="2" align="left" bgcolor="#FFFFFF"><input name="PromocaoProduto" type="text" id="PromocaoProduto" value="R$" size="20" /></td>
     </tr>
     <tr>
       <td bgcolor="#FFFFFF" class="textosform">Imagem do produto</td>
       <td colspan="2" align="left" bgcolor="#FFFFFF"><label for="ImagemProduto"></label>
         <input type="file" name="ImagemProduto" id="ImagemProduto" /></td>
     </tr>
     <tr>
       <td bgcolor="#FFFFFF"><span class="textosform">Estoque</span><span class="asterisco"> *</span></td>
       <td colspan="2" align="left" bgcolor="#FFFFFF"><input name="EstoqueProduto" type="text" id="EstoqueProduto" size="5" /></td>
     </tr>
     <tr>
       <td bgcolor="#FFFFFF"><span class="textosform">Peso</span><span class="asterisco"> *</span></td>
       <td colspan="2" align="left" bgcolor="#FFFFFF"><input name="PesoProduto" type="text" id="PesoProduto" size="5" />
         <span class="textosform">KG</span></td>
     </tr>
     <tr>
       <td bgcolor="#FFFFFF"><span class="textosform">Altura <span class="asterisco">*</span></span></td>
       <td colspan="2" align="left" bgcolor="#FFFFFF"><input name="AlturaProduto" type="text" id="AlturaProduto" size="10" />
         <span class="textosform">Centimentros</span></td>
     </tr>
     <tr>
       <td bgcolor="#FFFFFF"><span class="textosform">Largura</span><span class="asterisco"> *</span></td>
       <td colspan="2" align="left" bgcolor="#FFFFFF"><input name="LarguraProduto" type="text" id="LarguraProduto" size="10" />
         <span class="textosform">Centimentros</span></td>
     </tr>
     <tr>
       <td bgcolor="#FFFFFF"><span class="textosform">Comprimento</span><span class="asterisco"> *</span></td>
       <td colspan="2" align="left" bgcolor="#FFFFFF"><input name="ComprimentoProduto" type="text" id="ComprimentoProduto" size="10" />
         <span class="textosform">Centimentros</span></td>
     </tr>
     <tr>
       <td bgcolor="#FFFFFF"><span class="textosform">Tempo estimado de entrega</span><span class="asterisco"> *</span></td>
       <td colspan="2" align="left" bgcolor="#FFFFFF"><input name="TempoEntregaProduto" type="text" id="TempoEntregaProduto" size="10" />
         <span class="textosform">Dias</span></td>
     </tr>
     <tr>
       <td bgcolor="#FFFFFF"><span class="textosform">Exibir Produto</span><span class="asterisco"> *</span></td>
       <td colspan="2" align="left" bgcolor="#FFFFFF"><label for="select"></label>
         <p>
           <label> <span class="textosform">
             <input type="radio" name="ExibirProduto" value="S" id="ExibirProduto_0" />
             Sim</span></label>
           <span class="textosform">
             <label>
               <input type="radio" name="ExibirProduto" value="N" id="ExibirProduto_1" />
               Não</label>
           </span><br />
           <br />
         </p></td>
     </tr>
     <tr>
       <td bgcolor="#FFFFFF"><span class="textosform">Alerta estoque baixo<span class="asterisco"> *</span></span></td>
       <td align="left" bgcolor="#FFFFFF" class="textosform"><input type="radio" name="AlertaEstoqueBaixo" value="S" id="AlertaEstoqueBaixo_0" />
         Sim
         <input type="radio" name="AlertaEstoqueBaixo" value="N" id="AlertaEstoqueBaixo_1" />
         Não</td>
       <td align="left" bgcolor="#FFFFFF" class="textosform"><input type="hidden" name="datacadastroProduto" id="datacadastroProduto" value="<% date %>" /></td>
     </tr>
     <tr>
       <td bgcolor="#FFFFFF"><input type="image" name="imageField" id="imageField" src="imagens/btn_salvar_produto.png" /></td>
       <td colspan="2" align="right" bgcolor="#FFFFFF"><a href="gerprodutos_exibe.asp"><img src="imagens/btn_excluir_produtos.png" alt="" width="134" height="21" border="0" /></a></td>
     </tr>
   </table>
 </form>
</div>

 

e minha pagina que faz o cadastro com o upload sem componentes

 

<!-- #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 ----------------------
nomeProduto           = UploadRequest.Item("NomeProduto").Item("Value")
categoriaProduto      = UploadRequest.Item("txt_categoria").Item("Value")
fabricanteProduto     = UploadRequest.Item("FabricanteProduto").Item("Value")
descricaoProduto      = UploadRequest.Item("DescProduto").Item("Value")
dadostecProduto       = UploadRequest.Item("DadosTecProduto").Item("Value")
precoProduto          = UploadRequest.Item("PrecoProduto").Item("Value")
promocaoProduto       = UploadRequest.Item("PromocaoProduto").Item("Value")
estoqueProduto        = UploadRequest.Item("EstoqueProduto").Item("Value")
pesoProduto           = UploadRequest.Item("PesoProduto").Item("Value")
alturaProduto         = UploadRequest.Item("AlturaProduto").Item("Value")
larguraProduto        = UploadRequest.Item("LarguraProduto").Item("Value")
comprimentoProduto    = UploadRequest.Item("ComprimentoProduto").Item("Value")
tempoentregaProduto   = UploadRequest.Item("TempoEntregaProduto").Item("Value")
exibirProduto         = UploadRequest.Item("ExibirProduto").Item("Value")
alertaestoqueProduto  = UploadRequest.Item("AlertaEstoqueBaixo").Item("Value")
datacadastroProduto   = UploadRequest.Item("datacadastroProduto").Item("Value")

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


' Caminho completo dos arquivos enviados
caminho_foto = UploadRequest.Item("ImagemProduto").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("ImagemProduto").Item("Value")


' pasta onde as imagens serao guardadas
pasta = Server.MapPath("/eletronicosstore/imagemprodutos/")
'response.Write(pasta)
nome_foto = "/"&nome_foto


' pasta + nome dos arquivos
cfoto = "/imagemprodutos" + nome_foto
'Response.Write(cfoto)
'cfoto = 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



' Conecta-se ao Banco de Dados
%>
<!--#include file="config/config.asp"-->
<%
'Set conn = Server.CreateObject("ADODB.Connection")
'conn.Open "Driver={MySQL ODBC 3.51 Driver}; 'Server=75.125.138.106; Port = 3306; Database=ccdaribeiraopreto; Uid=onweb; Pwd=celular123;"


' cadastra os dados no banco de dados
sql = "Insert into album (idcategoria, nomeproduto, fabricante, descricao, dadostecnicos, preco, promocao, imagemurl, estoque, peso, altura, largura, comprimento, tempoentrega, ativo, alertadeestoquebaixo, dataentradaproduto) values ('"& categoriaProduto &"', '"& nomeProduto &"', '"& fabricanteProduto &"', '"& descricaoProduto &"', '"& dadostecProduto &"', '"& precoProduto &"', '"& promocaoProduto &"', '"& cfoto &"', '"& estoqueProduto &"', '"& pesoProduto &"', '"& alturaProduto &"', '"& larguraProduto &"', '"& comprimentoProduto &"', '"& tempoentregaProduto &"', '"& exibirProduto &"', '"& alertaestoqueProduto &"', '"& datacadastroProduto &"')"
conn.Execute(sql)

' Redireciona após 5 segundos
response.write "<script>alert('Produto adicionada com sucesso!');location.href='gerprodutos.asp';</script>"
response.write "<meta http-equiv='refresh' content='5; url=gerprodutos.asp'/>"
%>

o include que tem no inicio dessa pagina e a função

<%
' 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 -----------------------------------------
%>

 

se alguem puder me ajudar pq o erro acontece quando ele tenta fazer o upload mas nao sei como resolver-lo

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro aponta na linha 60, e qual exatamente é essa linha ?

a linha 60 é justamente dentro da função que faz o upload

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)))' essa e a linha 60

Next

MyFile.Close

end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa permitir o acesso IUSR_machinename ao seu projeto / DLL através DCOMCNFG.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao consegui com esse codigo entao resolvi usar um que ja usei algumas vezes e em todas funcionou...

bom eu adicionei o codigo e na primeira vez rodou fez o upload da imagem e cadastrou no banco as informações mas o campo que fica quardado o nome da imagem chegou em branco.... e depois quando tentei novamente um upload ja deu erro

ADODB.Stream error '800a0bbc'

 

Write to file failed.

 

/eletronicosstore/admin/freeaspupload.asp, line 94

não sei oque fazer mais com isso alguem pode me ajudar? vou postar a linha que fala no erro e tambem a outra pag

linha 94 da pag freeaspupload.asp
streamFile.SaveToFile filePath, adSaveCreateOverWrite

agora a pagina que chama a função de upload

<!-- #include file="freeaspupload.asp" -->
<!--#include file="config/config.asp"-->

<% 
 Dim uploadsDirVar 
 uploadsDirVar = "C:\domains\onwebdigital.com.br\httpdocs\eletronicosstore\imagemprodutos"  
%> 

<% 
'npid = request.QueryString("npid")
function SaveFiles 
       Dim Upload, fileName, fileSize, ks, i, fileKey 

       Set Upload = New FreeASPUpload 
       Upload.Save(uploadsDirVar) 

       ' If something fails inside the script, but the exception is handled 
       If Err.Number<>0 then Exit function 

       SaveFiles = "" 
       ks = Upload.UploadedFiles.keys 

'id_agenda = Upload.form("id_agenda") 
'titulo = Upload.form("titulo") 
'data = Upload.form("data") 
'resumo = Upload.form("resumo") 
'evento = Upload.form("evento") 
nomeProduto           = Upload.form("NomeProduto")
categoriaProduto      = Upload.form("txt_categoria")
fabricanteProduto     = Upload.form("FabricanteProduto")
descricaoProduto      = Upload.form("DescProduto")
dadostecProduto       = Upload.form("DadosTecProduto")
precoProduto          = Upload.form("PrecoProduto")
promocaoProduto       = Upload.form("PromocaoProduto")
estoqueProduto        = Upload.form("EstoqueProduto")
pesoProduto           = Upload.form("PesoProduto")
alturaProduto         = Upload.form("AlturaProduto")
larguraProduto        = Upload.form("LarguraProduto")
comprimentoProduto    = Upload.form("ComprimentoProduto")
tempoentregaProduto   = Upload.form("TempoEntregaProduto")
exibirProduto         = Upload.form("ExibirProduto")
alertaestoqueProduto  = Upload.form("AlertaEstoqueBaixo")
datacadastroProduto   = Date()

if (UBound(ks) <> -1) then 
modnomeimagem = Upload.UploadedFiles("fotoprod").FileName
'modnomeimagem = hour(time) & minute(time) & day(date) & month(date) & year(date) & Upload.UploadedFiles("fotoprod").FileName 
imagem = "imagemprodutos/" & modnomeimagem 
'imagem = "ImagensPerfil/" & Upload.UploadedFiles("procurar").FileName 
End If 

'--------------------------------------------------------------------------------------------------------------------------
sql = "Insert into produtos (idcategoria, nomeproduto, fabricante, descricao, dadostecnicos, preco, promocao, imagemUrl, estoque, peso, altura, largura, comprimento, tempoentrega, ativo, alertadeestoquebaixo, dataentradaproduto) values ('"& categoriaProduto &"', '"& nomeProduto &"', '"& fabricanteProduto &"', '"& descricaoProduto &"', '"& dadostecProduto &"', '"& precoProduto &"', '"& promocaoProduto &"', '"& imagem &"', '"& estoqueProduto &"', '"& pesoProduto &"', '"& alturaProduto &"', '"& larguraProduto &"', '"& comprimentoProduto &"', '"& tempoentregaProduto &"', '"& exibirProduto &"', '"& alertaestoqueProduto &"', '"& datacadastroProduto &"')"
conn.Execute(sql)
'-------------------------------------------------------------------------------------------------------------------------- 
'SQLup = "UPDATE tab_usuario_cadastro SET foto_perfil = '" & imagem & "' WHERE id_usuario ="& npid &""
'response.Write SQLup
'conn.Execute(SQLup) 

'SQL="UPDATE tab_usuario_cadastro SET foto_perfil='"& imagem &"' id_usuario ="& request.QueryString("npid") &"" 
'conexao.Execute(SQL) 
'conn.Execute(SQL)

end function 

response.write SaveFiles() 

response.write "<script>alert('Produto adicionada com sucesso!');location.href='gerprodutos.asp';</script>"
response.write "<meta http-equiv='refresh' content='5; url=gerprodutos.asp'/>"
%>

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.