Ir para conteúdo

POWERED BY:

Arquivado

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

klebeer_

[Resolvido] Upload sem componente do DARK0 - estou com problemas

Recommended Posts

Olá pessoal, etava pesquisando e achei aqui esse código do DARK0 que parece ser muiiito bom + esta me dando um erro no BROWSER e só manda a imagem para a pasta e não manda também para o Banco de Dados.

 

 

Banco de dados ACCESS e imagens como pasta de UPLOAD tudo com permissão TOTAL tanto para leitura como para gravação

 

Alguem poderia por gentileza me ajudar?????

 

O erro que esta dando é esse:

 

Tipo de erro:
Erro de tempo de execução do Microsoft VBScript (0x800A004C)
Caminho não encontrado
/teste/upload_form2.asp, line 55


Tipo de navegador: 
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB6; InfoPath.2; .NET CLR 2.0.50727) 

Página: 
POST 99515 bytes to /teste/upload_form2.asp

POST Data:
erro '80020009' 
Exceção. 

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

 

LINHA 55 DO UPLOAD_FORM2.ASP

Set MyFile = ScriptObject.CreateTextFile(cfoto)

E ai vão os códigos:

 

 

 

Upload_form.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!-- #include file = "upload_funcoes.asp" -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>teste</title>
</head>

<body>

<table>
<form name="form1" action="upload_form2.asp" method="post" enctype="multipart/form-data">
<!--#<tr>
<td>Nome:</td>
<td><input type="text" name="nome" size="20"></td>
</tr>
<tr>
<td>E-mail:</td>
<td><input type="text" name="email" size="20"></td>
</tr>-->
<tr>
<td>Foto:</td>
<td><input type="file" name="foto" size="14"></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="submit" value="Enviar">
</td>
</tr>
</form> 
</table>

</body>
</html>

Upload_form2.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!-- #include file = "upload_funcoes.asp" -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>teste</title>
</head>

<body>
<%
' 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 ----------------------
'nome = UploadRequest.Item("nome").Item("Value")
'email = UploadRequest.Item("email").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

' criando a pasta
set fs=Server.CreateObject("Scripting.FileSystemObject")

' Se a pasta não existir
if not(fs.FolderExists(pasta)) Then 
set f=fs.CreateFolder(pasta)
end if

set f=nothing
set fs=nothing

' Fazendo o Upload do arquivo selecionado
if foto <> "" then
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
Set MyFile = ScriptObject.CreateTextFile(cfoto)
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
url_conexao = Server.MapPath("dados\imoveis.mdb")
set conexao = Server.CreateObject("ADODB.Connection")
conexao.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&url_conexao 

' cadastra os dados no banco de dados
sql = "Insert into galeria_aluguel (foto) values ('"& cfoto &"')"
Conexao.Execute(sql)

' Mostra Mensagem de Confirmação na Tela
Response.write "Dados Cadastrados com Sucesso!"

' Redireciona após 5 segundos
'response.write "<br><br>você será redirecionado em 5 segundos..<br>"
'response.write "<meta http-equiv='refresh' content='5; url=index.asp'/>"
%>
</body>
</html>

upload_funcoes.asp

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

E é isso!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boas pessoal se não da com esse código, é uma pena mais tudo bem, eu preciso URGENTE de algum código que faça upload de imagem pra uma pasta e grave o caminho no BD ACCESS pode ser com o ASPUPLOAD ou com o ASPJPEG, ja tentei com o DUNDAS aqui, mas não funcionou, pois mesmo instalado dava erro como se não o DUNDAS não tivesse instalado!!!!!

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma verificada no lab. de script. tem bastante code, lá...

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzum beleza, procurei la no lab de script, e o que mais se aproximou do que eu preciso, foi esse sem componentes, só que ta dando o problema somente na linha:

 

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

Peguei o código ORIGINAL novamente e só mudei o caminho das imagens e do banco de dados, dando permissão TOTAL para as 2 pastas e da o erro:

 

Tipo de erro:
Erro de tempo de execução do Microsoft VBScript (0x800A0005)
Chamada de procedimento ou argumento inválido
/teste/upload_form2.asp, line 46

Que é a linha que eu postei logo acima.

 

Por favor alguem poderia me ajudar??????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenha certeza de que só estão carregando arquivos de imagens, com um tamanho que nao ultrapasse o limite, trente rodar em outro server para teste, e verifique tb se a variavel naun esta vindo vazia.

tente imprimi-las como o Response.Write(nome das variaveis)

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzum como você pode ver eu comentei as variaveis nome e email, deixando assim só a foto mesmo, que é o que eu preciso no momento, vou tentar em outra maquina aqui pra ver se da o mesmo erro....e volto a postar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzum fiz como você falou testei em outra maquina, na primeira vez fez a mesma coisa , tentei novamente e não é que foi?????? http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

 

Poxa vida o que será que é isso.....Que coisa + LOUCA <_< , mas ainda bem que funcionou....hehehehehehehehe http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Valeu pela dica, mais uma vez.....BRIGADUUUUUUUUUU

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.