Ir para conteúdo
Fórum Script Brasil
  • 0

Upload Sem Componentes


dark0

Pergunta

Olá pessoal.

Vou mostrar pra vocês 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

Link para o comentário
Compartilhar em outros sites

  • Respostas 75
  • Created
  • Última resposta

Top Posters For This Question

Top Posters For This Question

Posts Recomendados

  • 0

para o tempo limite, existe:

Server.ScriptTimeout=200

onde 200 é em segundos..

o padrão do iis é 90, se não me engano..

sobre os javascripts

dê uma olhada em algumas coisas que eu uso em upload

Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal estou utilizando esse código ele é simples e facil de manipular.

RENOMEAR????

Precisei fazer um ajuste para que ele renomeasse o arquivo assim que fosse feito o upload.

Se vocês estiverem interesados em como eu fiz vejam o link:

http://scriptbrasil.com.br/forum/index.php?showtopic=67764

Valeu Dark0, eu tava quebrando a cabeça

Link para o comentário
Compartilhar em outros sites

  • 0

mas você fez o codigo para apagar da pasta?

Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal, estou com um problema e não sei como resolver....

Estou utilizando este mesmo código para upload e quando executo local vai para qualquer tamanho de arquivo, agora qd estou tentando fazer o upload no servidor (iis 6.0, win2003 server) ele só aceita arquivos menores que 200k, eu tentei mexer nas configurações do iis para alterar o limite, como o bicicleta havia comentado e não achei nada.

O problema não está no meu script (porque senão não funcionaria local, e nem pra arquivo nenhum), imagino eu que deva ser no iis, mas onde eu configuro isso? Alquém me ajude please????Estou desesperada......

Obrigada

Link para o comentário
Compartilhar em outros sites

  • 0

olá

com certeza isso é uma limitação do IIS.

Eu não tenho um iis 6.0 aqui para procurar o local onde possa estar essa limitação.

Mas, se você tem, procure alguma opção que limite o tamanho do upload;

Com certeza tem em algum local isso aí

Pois, o codigo eu sei que funciona, hehe, já testei até 3mb e funcionou legal.

Link para o comentário
Compartilhar em outros sites

  • 0

Conseguiiiii... laugh.gif

De qualquer forma obrigada Dark0.

E pra se alguém tiver este problema. Ai está a solução, tudo bem que está em inglês, mas já ajuda..

Make sure the IIS web server is not restricting the size of ASP uploads. IIS 6 (Windows Server 2003) has a limit of 200 KB for ASP requests in general and file uploads in particular. To remove this limitation in IIS 6 you need to edit the Metabase file, which can be found at c:\Windows\System32\Inetsrv\MetaBase.xml.

Follow these steps: go to IIS and right click the server, select properties, and check the box "Allow changes to MetaBase configuration while IIS is running"; if after this step the metabase file is still locked, try turning off IIS or even restarting the machine in safe mode; open the file in an editor; the variable AspMaxRequestEntityAllowed limits the number of bytes in the page request (by default 200KB); change the value to 1073741824 (unlimited) or to a limit of your choice; check whether the same variable shows up in other places in the file.

Fonte: http://www.freeaspupload.net/freeaspupload/requirements.asp

Até + biggrin.gif

Link para o comentário
Compartilhar em outros sites

  • 0

dark0, parabéns man, adorei esse script s/ componente !!!! A interação com Ajax fica supimpa .. rsrsrsrsr e rapido, quando tiver 1 min eu posto aqui ok ?

Mas estou encontrando um dificuldade .... se eu tiver um campo no form que não é preenchido ele dá o erro:

Object required: 'UploadRequest.Item(...)'

como eu manipulo o Request do form ?

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Eduardo --

Ola,

então Dark, eu testei seu codigo aqui e ele funcionou que é uma beleza....mas eu queria adcionar mais alguns campos de inseção de fotos .....testei com mais um campo e deu erro....vai o codigo abaixo.......caso você tenha um tempinho para analisar e conseguir identificar o erro eu agradeço desde já......

<!-- #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

' pasta + nome dos arquivos
cfoto = "imagens/lojas" + nome_foto
cfoto2 = "imagens/lojas" + nome_foto2



' Fazendo o Upload do arquivo selecionado
if foto <> "" then
if foto2 <> "" then
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
Set MyFile = ScriptObject.CreateTextFile(pasta & nome_foto)
Set MyFile = ScriptObject.CreateTextFile(pasta & nome_foto2)
For i = 1 to LenB(foto)
 MyFile.Write chr(AscB(MidB(foto,i,1)))
 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'/>"
%>

Cara se tem algum absurdo primario que eu fiz ai me desculpe......porque eu não tenho muita experiencia com programação

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Eduardo --

O erro que dáéo seguinte...

Tipo de erro:

Erro de compilação do Microsoft VBScript (0x800A0410)

Variável de controle de loop 'for' inválida

/trentina/venda/up/upload_form22.asp, line 50, column 6

For i = 1 to LenB(foto2)

-----^

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Eduardo --
For i = 1 to LenB(foto2) --> o lenB o B não existe

coloque

For i = 1 to Len(foto2)

Esta dando o seguinte erro.

Tipo de erro:

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

Permissão negada

/trentina/venda/up/upload_form22.asp, line 46

Já dei permissao nas pastas e não adiantou.

Segue o codigo como esta. Estarei citando a linha 46

<!-- #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

' pasta + nome dos arquivos

cfoto = "imagens/lojas" + nome_foto

cfoto2 = "imagens/lojas" + nome_foto2

' Fazendo o Upload do arquivo selecionado

if foto <> "" then

if foto2 <> "" then

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

Set MyFile = ScriptObject.CreateTextFile(pasta & nome_foto) - linha 46

Set MyFile = ScriptObject.CreateTextFile(pasta & nome_foto2)

For i = 1 to LenB(foto,foto2)

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

Next

MyFile.Close

end if

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'/>"

%>

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Eduardo --
você ta rodando estre codigo no iis ou no server?

To rodando no server.

O seu codigo aqui no iis da erro....se eu jogo no servidor ele funciona. Mas esse no servidor não ta funcionando não...... ele envia o caminho e o nome da foto 1 corretamente pro db manda o caminho do foto 2 pro db mas não manda o nome da imagem. E as 2 imagens estao chegando no mesmo diretorio que o codigo e não para a pasta que eu designei e também as imgs chegam com 0 bytes e não consigo visualizar. Ta estranho as coisas...creio que deve ser algum erro bem bobo. Sei la se você quiser que te mando por email...caso você tenha um tempinho pra ver ai...mas de qualquer forma já fico agradecido pela força

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Eduardo --
você ta rodando estre codigo no iis ou no server?

To rodando no server.

O seu codigo aqui no iis da erro....se eu jogo no servidor ele funciona. Mas esse no servidor não ta funcionando não...... ele envia o caminho e o nome da foto 1 corretamente pro db manda o caminho do foto 2 pro db mas não manda o nome da imagem. E as 2 imagens estao chegando no mesmo diretorio que o codigo e não para a pasta que eu designei e também as imgs chegam com 0 bytes e não consigo visualizar. Ta estranho as coisas...creio que deve ser algum erro bem bobo. Sei la se você quiser que te mando por email...caso você tenha um tempinho pra ver ai...mas de qualquer forma já fico agradecido pela força

Mas então foi mal Bareta...fui mó folgado né......mas estou quase fazendo funcionar......falta pouco......quando eu conseguir eu volto a postar aqui.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Cintia --

Olá meninos,

Vocês não só quebraram um galho pra mim, quebraram a arvóre inteira!!! :)

Tava procurando exatamente uma maneira de fazer upload (de imagem) sem ter q usar componentes no servidor. Nunca pensei q em ASP fosse tão chatinho fazer isso... é todo um aprocesso. Já em PHP é muito mais simples e não encontraria tantas dificuldades a não ser que eu quisesse trabalhar com thumbnails, mas de qualquer forma eu acho mais simples.

Eduardo: Consegui colocar pra funcionar numa boa aqui. Só tou procurando uma maneira de renomear. Já encontrei a solução em um link lá em cima mas ainda vou dar uma olhadinha.

Cintia.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Cintia --

Consegui.... :)

Analisando o código, percebi que ele cria o arquivo apartir da criação de uma TXT. Daí é só criar o TXT com a extencao da imagem com qualquer nome e depois mandar escrever o conteudo da figura dentro desse arquivo. Sacaram?

fica assim:

nomeImagem = figura.jpg

nomeImagemArquivo = "noticia_" & rsSelect("codigoNoticia")+1 & "_" & nomeImagem

pasta = Server.MapPath("caminho/")

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

Set MyFile = ScriptObject.CreateTextFile(pasta & nomeImagemArquivo)

For i = 1 to LenB(txtImagem)

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

Next

MyFile.Close

Assim o nome original da imagem é renomeado.

Se quiserem, pode mudar totalmente o nome da imagem, tendo apenas q extrair a extensao dela e depois concatenar com o novo nome. Neste caso, eu preferi concatenar fazendo o prefixo de onde ela pertence, com o codigo(pk) da tabela mais o seu nome original.

Cintia.

Link para o comentário
Compartilhar em outros sites

  • 0

opa e ae galera beleza!

tenho uma duvida com relacao a esse tuto!

1.No banco o campo da foto é um varchar ou image?

2.O codigo cria alguma pasta automaticamente ou eu tenho que criar uma?

3. quando tento rodar o codigo da o erro: Objeto necessário: '[undefined]' na linha 19 do upload_form2.asp.

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

Eu já percebi que uma pessoa já teve esse mesmo problema alguém sabe a resolucao?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.




  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...