dark0 0 Denunciar post Postado Maio 4, 2005 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. - Passo a passo de como enviar mais de 1 arquivo ao mesmo tempo. http://forum.imasters.com.br/index.php?s=&...st&p=417368 - Enviando e-mail após o upload, com o anexo que foi upado, com o Componente CDONTS/ASPMAIL. 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 http://forum.imasters.com.br/index.php?s=&...st&p=658611 Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Maio 4, 2005 sem componentes tb... http://www.freeaspupload.net Compartilhar este post Link para o post Compartilhar em outros sites
dark0 0 Denunciar post Postado Maio 4, 2005 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+ Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Maio 4, 2005 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") Compartilhar este post Link para o post Compartilhar em outros sites
mx loco 1 Denunciar post Postado Maio 14, 2005 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 Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Maio 14, 2005 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 <{POST_SNAPBACK}> com certeza esta é a melhor parte da coisa... Compartilhar este post Link para o post Compartilhar em outros sites
myname 0 Denunciar post Postado Maio 17, 2005 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. Compartilhar este post Link para o post Compartilhar em outros sites
dj.guilherme 0 Denunciar post Postado Junho 23, 2005 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 Compartilhar este post Link para o post Compartilhar em outros sites
Penelope 0 Denunciar post Postado Julho 12, 2005 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... Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Julho 12, 2005 tente usar o freeaspupload... Compartilhar este post Link para o post Compartilhar em outros sites
Penelope 0 Denunciar post Postado Julho 12, 2005 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") Compartilhar este post Link para o post Compartilhar em outros sites
Salgado 4 Denunciar post Postado Julho 12, 2005 Seu servidor não deve estar permitindo o USO de FSO, está usando hospedagem gratuita? Compartilhar este post Link para o post Compartilhar em outros sites
Penelope 0 Denunciar post Postado Julho 12, 2005 Estou sim, estou usando o www.domaindlx.com Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Julho 12, 2005 então é isso... Compartilhar este post Link para o post Compartilhar em outros sites
Michel_ 0 Denunciar post Postado Agosto 2, 2005 Eu usando pws pra rodar na minha maquina, esse upload funcionara? Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Agosto 2, 2005 sim Compartilhar este post Link para o post Compartilhar em outros sites
fazeredo2002 0 Denunciar post Postado Agosto 17, 2005 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... <{POST_SNAPBACK}> 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. Compartilhar este post Link para o post Compartilhar em outros sites
fazeredo2002 0 Denunciar post Postado Agosto 17, 2005 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... <{POST_SNAPBACK}> 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. <{POST_SNAPBACK}> 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 Compartilhar este post Link para o post Compartilhar em outros sites
fazeredo2002 0 Denunciar post Postado Agosto 24, 2005 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 Compartilhar este post Link para o post Compartilhar em outros sites
dark0 0 Denunciar post Postado Agosto 26, 2005 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.. Compartilhar este post Link para o post Compartilhar em outros sites