Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal.
Vou mostrar pra vcs como fazer upload sem componentes.
Eu precisei usar isso em um sistema que estou desenvolvendo, e, como sofri um pouco pra achar algo que funcionasse, vou postar aqui pra vocês como fazer.
Eu usei aqui 3 páginas pra isso.
Uma delas continha funções, usadas para fazer o upload.
Outra tinha o form, com campos texto e campos file.
E outra, com o código que cadastra no banco de dados, e que faz o upload.
Página 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 -----------------------------------------
%>
Pagina Upload_form.asp
>
<!-- #include file = "upload_funcoes.asp" -->
<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>
Pagina upload_form2.asp
>
<!-- #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 ----------------------
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/lojas" + 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
url_conexao = Server.MapPath("banco.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 lojas (nome,email,foto) values ('"& nome &"', '"& email &"', '"& 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'/>"
%>
Bem. Se mudarem o nome dos arquivos. Vejam nos includes, no começo do código, e alterem para o nome alterado.
Para adicionar mais campos, é só seguir essa lógica aí.
Eu testei aqui, antes de postar, e funcionou beleza.
Eu testei isso, em Windows XP, rodando IIS.
Qualquer duvida, podem postar aí
Grande abraço,
Dark0!
Editando..
Como esse tópico cresceu bastante, é interessante darem uma lida em todo ele, pois tem muito mais conteúdo lá pra metade dele e pro final tb.
Mas, pra ajudar, estou colocando aqui, link para os posts interessantes.
http://forum.imasters.com.br/index.php?s=&...st&p=417368
http://forum.imasters.com.br/index.php?s=&...st&p=470918
Funções Javascript para Verificar Extensões e Tamanho de Arquivo antes de enviar
http://forum.imasters.com.br/index.php?s=&...st&p=425468
Novo
Fazendo UPLOAD + Enviando E-mail com o anexo recem enviado pro servidor
mario, quando tiver com tempo.. cria um topico, e posta aí um passo-a-passo de como usar o esquema desse site..pode ser?tipo como eu fiz aqui..pode ajudar tb..t+
>
mario, quando tiver com tempo.. cria um topico, e posta aí um passo-a-passo de como usar o esquema desse site..
pode ser?
tipo como eu fiz aqui..
pode ajudar tb..
t+
cara não tem treta...
é só baixar o .zip que vem com dois arquivos, sendo que um deles é classe pronta pra usar e o outro é um exemplo do bixo funcionando...
a unica coisa que precisa mudar é o diretorio onde serão carregados os arquivos e dá permissão de escrita neste diretorio...
se quiser misturar pra recuperar outros dados do form é só pegar normal com
nome_objeto_upload.form("nome_campo")
kara este esquema de upload é perfeito... muito útil simples.. e ainda mais sem componentes...posso jogar ele em qualquer servidor que sei que ira funfar numa boa :D
>
kara este esquema de upload é perfeito... muito útil simples.. e ainda mais sem componentes...
posso jogar ele em qualquer servidor que sei que ira funfar numa boa
:D
[](/topic/164376-upload-sem-componentes/?do=findComment&comment=356240)
com certeza esta é a melhor parte da coisa...
Olá Dark0,Ótima iniciativa essa sua, esse tipo de formulário é muito util. eu copiei e colei o seu formulario e nomeei os arquivos conforme suas instruções e criei um banco de dados com o nome banco e uma tabela "loja" conforme os seus arquivos pedem. No entanto eu estou obtendo o seguinte erro:Erro de tempo de execução do Microsoft VBScript (0x800A000D)Tipos incompatíveis: 'BuildUploadRequest'/imobiliaria/Teste_foto/teste7/upload_form2.asp, line 13Será que você pode me ajudar? Desde já eu agradeço a sua atenção. Obrigado.
Ola amigos,Como eu faço para limitar o tamanho do arquivo (kb), e só dar UPLOAD de fotos e não de qualquer documento???Ainda se possivel, existe alguma maneira de limitar a dimensao da foto tambem (Ex: 100x50)? Como?Obrigado,Guilherme de Oliveiradj.guilherme@bol.com.br
Olá!
Estava tentando usar esse código para upload, fiz tudo como está dizendo lá, mas ele está apresentando o erro:
Server object error 'ASP 0177 : 800401f3'
Server.CreateObject Failed
/penelopenaweb/loja/upload_form2.asp, line 67
acho que é nessa parte do form_upload2:
ASP
[*]
[*]' 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
[*]
A linha 67 é:
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
O que será q está acontecendo?
Alguém me dá uma luz... sou iniciante...
tente usar o freeaspupload...
Acreditem se quiser, mas deu o mesmo erro.... :angry: Será que é problema no servidor que não tem suporte pra isso? :blink: Olhem o erro:Server object error 'ASP 0177 : 800401f3' Server.CreateObject Failed /penelopenaweb/loja/uploadTester.asp, line 40 A linha 40 é:Set fso = Server.CreateObject("Scripting.FileSystemObject")
Seu servidor não deve estar permitindo o USO de FSO, está usando hospedagem gratuita?
Estou sim, estou usando o www.domaindlx.com
então é isso...
Eu usando pws pra rodar na minha maquina, esse upload funcionara?
sim
>
Olá!
Estava tentando usar esse código para upload, fiz tudo como está dizendo lá, mas ele está apresentando o erro:
Server object error 'ASP 0177 : 800401f3'
Server.CreateObject Failed
/penelopenaweb/loja/upload_form2.asp, line 67
acho que é nessa parte do form_upload2:
ASP
[*]' Fazendo o Upload do arquivo selecionado<br /><br />if foto <> "" then<br /><br /> Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")<br /><br /> Set MyFile = ScriptObject.CreateTextFile(pasta & nome_foto)<br /><br /> For i = 1 to LenB(foto)<br /><br /> MyFile.Write chr(AscB(MidB(foto,i,1)))<br /><br /> Next<br /><br /> MyFile.Close<br /><br />end if
A linha 67 é:
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
O que será q está acontecendo?
Alguém me dá uma luz... sou iniciante...
[](/topic/164376-upload-sem-componentes/?do=findComment&comment=389523)
PESSOAL!
ESTOU PRECISANDO FAZER UM SISTEMA DE UPLOAD MAS TÁ MUITO DIFÍCIL, EU NÃO CONSIGO.... TENTEI O CÓDIGO DO DAKO, MAS NÃO CONSEGUI...
TENTEI TAMBÉM A OPÇÃO DO MÁRIO, MAS TAMBEM NÃO CONSEGUI. SERÁ QUE EU SOU TÃO BURRO ASSIM?
Alguém me dá uma luz ae... preciso fazer o upload e gravar o nome no banco de dados.
Grato galera!
Fabiano.
>
>
Olá!
Estava tentando usar esse código para upload, fiz tudo como está dizendo lá, mas ele está apresentando o erro:
Server object error 'ASP 0177 : 800401f3'
Server.CreateObject Failed
/penelopenaweb/loja/upload_form2.asp, line 67
acho que é nessa parte do form_upload2:
<!--asp1--><div class='asptop'>ASP</div><div class='aspmain'><!--easp1--><link href = "style_images/css_asp.css" rel = "stylesheet" type = "text/css">
[*]' Faz<font color="8E7144">end</font>o o Upload do arquivo selecionado<br /><br /><font color="8E7144">if</font> foto <> "" <font color="8E7144">then</font><br /><br /> <font color="8E7144">Set</font> ScriptObject <font color="#269900"></font>= <font color="#0080C0">Server</font><font color="#8C00AA">.</font><font color="#979700">CreateObject</font>("Scripting.FileSystemObject")<br /><br /> <font color="8E7144">Set</font> MyFile <font color="#269900"></font>= <font color="#0080C0">ScriptObject</font><font color="#8C00AA">.</font><font color="#979700">CreateTextFile</font>(pasta & nome_foto)<br /><br /> For i <font color="#269900"></font>= 1 to <font color="#979700">LenB</font>(foto)<br /><br /> <font color="#0080C0">MyFile</font><font color="#8C00AA">.Write</font> <font color="#979700">chr</font>(<font color="#979700">AscB</font>(<font color="#979700">MidB</font>(foto,i,1)))<br /><br /> <font color="8E7144">Next</font><br /><br /> <font color="#0080C0">MyFile</font><font color="#8C00AA">.Close</font><br /><br /><font color="8E7144">end</font> <font color="8E7144">if</font>
<!--asp2--></div><!--easp2-->
A linha 67 é:
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
O que será q está acontecendo?
Alguém me dá uma luz... sou iniciante...
[](/topic/164376-upload-sem-componentes/?do=findComment&comment=389523)
PESSOAL!
ESTOU PRECISANDO FAZER UM SISTEMA DE UPLOAD MAS TÁ MUITO DIFÍCIL, EU NÃO CONSIGO.... TENTEI O CÓDIGO DO DAKO, MAS NÃO CONSEGUI...
TENTEI TAMBÉM A OPÇÃO DO MÁRIO, MAS TAMBEM NÃO CONSEGUI. SERÁ QUE EU SOU TÃO BURRO ASSIM?
Alguém me dá uma luz ae... preciso fazer o upload e gravar o nome no banco de dados.
Grato galera!
Fabiano.
[](/topic/164376-upload-sem-componentes/?do=findComment&comment=411504)
CARAMBA, FOI SÓ EU FICAR NERVOSO QUE EU CONSEGUI....
VALEU PESSOAL, O ERRO ERA A PERMISSAO DE ESCRITA NA PASTA ONDE AS IMAGENS SERÃO INCLUÍDAS... JÁ TINHA DADO A PERMISSÃO, MAS NÃO SEI PQ NÃO ACEITOU... SOU MUITO TOSCO MESMO! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
PESSOAL!
Tem como usar este código do Dark0 pra fazer mais de 1 upload ao mesmo tempo?
Poderiam me ajudar a fazer?
Fabiano. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif
oláé possível sim..eu ja usei este esquema para enviar 5 fotos ao mesmo temponao tem misterio.. é só você repetir as linhas do codigo que apontam para o campo file, no form e depois no codigo de upload..em base eh isso..
>
olá
é possível sim..
eu ja usei este esquema para enviar 5 fotos ao mesmo tempo
nao tem misterio.. é só você repetir as linhas do codigo que apontam para o campo file, no form e depois no codigo de upload..
em base eh isso..
[](/topic/164376-upload-sem-componentes/?do=findComment&comment=417000)
Dark0, esse código é muito bom mesmo...
Fiz umas adaptações no seu código... envio 6 fotos ao mesmo tempo, mas somente dá pra vizualizar a foto6.
Tem idéia do que seja?
>
olá
é possível sim..
eu ja usei este esquema para enviar 5 fotos ao mesmo tempo
nao tem misterio.. é só você repetir as linhas do codigo que apontam para o campo file, no form e depois no codigo de upload..
em base eh isso..
[](/topic/164376-upload-sem-componentes/?do=findComment&comment=417000)
Dark0! Sem querer abusar da sorte... tem como você me dar um exemplo usando pelo menos 2 uploads ao mesmo tempo?
É que já perguntei tanto nesse fórum a respeito, mas ninguém dá uma resposta que me ajude realmente!
É só dizer onde eu faço, que nós vamos fazer funfa!
Espero um retorno seu... se sim ou não.
Abraços.
Obs.: Se você quiser, eu posto o código adaptado! Caso queira, quais dos três códigos.
brother, quando eu for pra casa, eu te dou um exemplo entao.pode ser?eu estive meio off uns dias, mas to conseguindo dar a volta por cima.. hehesabe como é.. excesso de trabalho compete bastante com os foruns :P abraços
>
brother, quando eu for pra casa, eu te dou um exemplo entao.
pode ser?
eu estive meio off uns dias, mas to conseguindo dar a volta por cima.. hehe
sabe como é.. excesso de trabalho compete bastante com os foruns :P
abraços
[](/topic/164376-upload-sem-componentes/?do=findComment&comment=417298)
Ei sei que o trabalho compete, mas você fazem um trabalho muito nobre ajudando as pessoas nos fóruns... Este ato é louvável.
Fico ancioso pelo seu exemplo!
Abraços...
Fabiano.
Bueno..
Aqui estamos nós, heeh
Eu fiz um exemplo simples aqui, testei, e funfou.
Eu peguei os codigos que eu havia postado no primeiro post desse topico, alterei para 2 campos de fotos.
Vou postar aqui, salientando em vermelho as linhas adicionadas.
upload_form.asp
>
<!-- #include file = "upload_funcoes.asp" -->
<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>Foto 2:</td>
<td><input type="file" name="foto2" size="14"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submit" value="Enviar"></td>
</tr>
</form>
</table>
upload_form2.asp
>
<!-- #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 ----------------------
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")
tipo_foto2 = UploadRequest.Item("foto2").Item("ContentType")
' Caminho completo dos arquivos enviados
caminho_foto = UploadRequest.Item("foto").Item("FileName")
caminho_foto2 = UploadRequest.Item("foto2").Item("FileName")
' Nome dos arquivos enviados
nome_foto = Right(caminho_foto,Len(caminho_foto)-InstrRev(caminho_foto,"\"))
nome_foto2 = Right(caminho_foto2,Len(caminho_foto2)-InstrRev(caminho_foto2,"\"))
' Conteudo binario dos arquivos enviados
foto = UploadRequest.Item("foto").Item("Value")
foto2 = UploadRequest.Item("foto2").Item("Value")
' pasta onde as imagens serao guardadas
pasta = Server.MapPath("imagens/")
nome_foto = "/"&nome_foto
nome_foto2 = "/"&nome_foto2
' pasta + nome dos arquivos
cfoto = "imagens/lojas" + nome_foto
cfoto2 = "imagens/lojas" + nome_foto2
' 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 foto2 <> "" then
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
Set MyFile = ScriptObject.CreateTextFile(pasta & nome_foto2)
For i = 1 to LenB(foto2)
MyFile.Write chr(AscB(MidB(foto2,i,1)))
Next
MyFile.Close
end if
' Conecta-se ao Banco de Dados
url_conexao = Server.MapPath("banco.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 lojas (nome,email,foto,foto2) values ('"& nome &"', '"& email &"', '"& cfoto &"', '"& cfoto2 &"')"
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'/>"
%>
upload_funcoes.asp (Nao foi alterado)
>
<%
' 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 -----------------------------------------
%>
Ressaltando somente o fato de ter criado tambem, mais um campo do tipo texto, na tabela do banco de dados.
Veja se consegue entender a logica do esquema.
Aparentemente é simples, basta você duplicar tudo o que contiver foto no meio.. caminho, tipo, nome, e etc..
Qualquer coisa posta ae
abraços
>
Bueno..
Aqui estamos nós, heeh
Eu fiz um exemplo simples aqui, testei, e funfou.
Eu peguei os codigos que eu havia postado no primeiro post desse topico, alterei para 2 campos de fotos.
Vou postar aqui, salientando em vermelho as linhas adicionadas.
upload_form.asp
>
<!-- #include file = "upload_funcoes.asp" -->
<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>Foto 2:</td>
<td><input type="file" name="foto2" size="14"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submit" value="Enviar"></td>
</tr>
</form>
</table>
upload_form2.asp
>
<!-- #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 ----------------------
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")
tipo_foto2 = UploadRequest.Item("foto2").Item("ContentType")
' Caminho completo dos arquivos enviados
caminho_foto = UploadRequest.Item("foto").Item("FileName")
caminho_foto2 = UploadRequest.Item("foto2").Item("FileName")
' Nome dos arquivos enviados
nome_foto = Right(caminho_foto,Len(caminho_foto)-InstrRev(caminho_foto,"\"))
nome_foto2 = Right(caminho_foto2,Len(caminho_foto2)-InstrRev(caminho_foto2,"\"))
' Conteudo binario dos arquivos enviados
foto = UploadRequest.Item("foto").Item("Value")
foto2 = UploadRequest.Item("foto2").Item("Value")
' pasta onde as imagens serao guardadas
pasta = Server.MapPath("imagens/")
nome_foto = "/"&nome_foto
nome_foto2 = "/"&nome_foto2
' pasta + nome dos arquivos
cfoto = "imagens/lojas" + nome_foto
cfoto2 = "imagens/lojas" + nome_foto2
' 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 foto2 <> "" then
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
Set MyFile = ScriptObject.CreateTextFile(pasta & nome_foto2)
For i = 1 to LenB(foto2)
MyFile.Write chr(AscB(MidB(foto2,i,1)))
Next
MyFile.Close
end if
' Conecta-se ao Banco de Dados
url_conexao = Server.MapPath("banco.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 lojas (nome,email,foto,foto2) values ('"& nome &"', '"& email &"', '"& cfoto &"', '"& cfoto2 &"')"
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'/>"
%>
upload_funcoes.asp (Nao foi alterado)
>
<%
' 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 -----------------------------------------
%>
Ressaltando somente o fato de ter criado tambem, mais um campo do tipo texto, na tabela do banco de dados.
Veja se consegue entender a logica do esquema.
Aparentemente é simples, basta você duplicar tudo o que contiver foto no meio.. caminho, tipo, nome, e etc..
Qualquer coisa posta ae
abraços
[](/topic/164376-upload-sem-componentes/?do=findComment&comment=417368)
Karaca véio... funfu na moral!
Dark0, eu estava errando no if do código ação do form... estava fazendo apenas 1 if pra todas as fotos, daí ele fazia o upload, mas somente dos nomes, o conteúdo da foto não enviava.
Muito obrigado cara... não tenho mais dúvidos sobre uploads!
http://forum.imasters.com.br/public/style_emoticons/default/blush.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif
sem componentes tb...
http://www.freeaspupload.net