Ir para conteúdo

POWERED BY:

Arquivado

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

Fernando_DMK

Upload sem componente

Recommended Posts

Estou com problemas, pois está gravando com 0 KB, alguém sabe me dizer o que está ocorrendo ?

<html>
<head>
<title>Upload sem componente</title>
</head>

<body>

<form action="upload.asp" method="post" enctype="multipart/form-data">
E-mail: <input type="text" name="txtEmail"><br>
Arquivo 1: <input type="file" name="txtArquivo1"><br>
Arquivo 2: <input type="file" name="txtArquivo2"><br>
<input type="submit" name="cmdEnviar" value="Enviar">
</form>

</body>
</html>

<!--O formulário estará chamando a página upload.asp, especificada no atributo action do elemento FORM.

Segue abaixo o código da página upload.asp. -->

<%@ Language=VBScript %>
<%
Dim Contador, Tamanho
Dim ConteudoBinario, ConteudoTexto
Dim Delimitador, Posicao1, Posicao2
Dim ArquivoNome, ArquivoConteudo, PastaDestino
Dim objFSO, objArquivo

PastaDestino = Server.MapPath("../../../imagens/upload/")

'Determina o tamanho do conteúdo
Tamanho = Request.TotalBytes

'Obtém o conteúdo no formato binário
ConteudoBinario = Request.BinaryRead(Tamanho)

'Transforma o conteúdo binário em string
For Contador = 1 To Tamanho
 ConteudoTexto = ConteudoTexto & Chr(AscB(MidB(ConteudoBinario, Contador, 1)))
Next 

'Determina o delimitador de campos
Delimitador = Left(ConteudoTexto, InStr(ConteudoTexto, vbCrLf) - 1)

'Percorre a String procurando os campos
'identifica os arquivo e grava no disco
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

Posicao1 = InStr(ConteudoTexto, Delimitador) + Len(Delimitar)

do while True
 ArquivoNome = ""
 Posicao1 = InStr(Posicao1, ConteudoTexto, "filename=")
 if Posicao1 = 0 then
   exit do
 else
  'Determina o nome do arquivo
  Posicao1 = Posicao1 + 10
  Posicao2 = InStr(Posicao1, ConteudoTexto, """")
  For contador = (Posicao2 - 1) to Posicao1 step -1
   if Mid(ConteudoTexto, Contador, 1) <> "\" then '"
     ArquivoNome = Mid(ConteudoTexto, Contador, 1) & ArquivoNome
   else
     exit for
   end if
  next

  'Determina o conteúdo do arquivo
  Posicao1 = InStr(Posicao1, ConteudoTexto, vbCrLf & vbCrLf) + 4
  Posicao2 = InStr(Posicao1, ConteudoTexto, Delimitador) - 2
  ArquivoConteudo = Mid(ConteudoTexto, Posicao1, (Posicao2 - Posicao1 + 1))

  'Grava o arquivo
  if ArquivoNome <> "" then
    Set objArquivo = objFSO.CreateTextFile(PastaDestino & "\" & ArquivoNome, true)
    objArquivo.WriteLine ArquivoConteudo
    objArquivo.Close

    Response.write "Arquivo " & PastaDestino & "\" & _
    ArquivoNome & " gravado com sucesso!<br>"
    Set objArquivo = nothing
  end if
end if
Loop
Set objFSO = nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olhando por cima, não vejo no codigo do upload onde você recupera o arquivo 1 e 2 que foram enviados pelo formulário.

Verifique também as permissões da pasta, as vezes o erro pode estar ali.

Tem um código muito bom de upload sem componentes no laboratório de scripts dá uma olhada lá ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele gera algum erro ????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mudei para o freeAspUPload conforme foi sugerido pelo Thiago, porém agora ele roda local e no servidor (dedicado) está dando erro de escrita.

 

Já tentei dar permissão de escrita na pasta, mas não estou conseguindo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

dê permissão também pelo painel de administração de arquivo do seu host

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.