Ir para conteúdo

POWERED BY:

Arquivado

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

Thiago Dos Reis

Problema com Upload

Recommended Posts

Boa tarde galera,

 

eu tenho um domínio e alguns subdomínios configurados no meu IIS. No default website (o domínio principal) eu consigo fazer Uploads normalmente. No entanto, apesar de usar exatamente o MESMO script de upload (sem mudar nada) nos subdomínios dá o seguinte erro na hora do upload:

 

 

Microsoft VBScript runtime error '800a0005'

 

Invalid procedure call or argument

 

/users_alt_upload.asp, line 97

 

 

Em ambos eu uso o mesmo código de upload, a linha que dá erro é esta:

 

objArquivo.WriteLine ArquivoConteudo

 

 

O que me intrigou foram 2 coisas

 

1- como eu já disse, uso exatamente a mesma página pra upload (copiei/colei). Mesmo se usar outros scripts dá o MESMO erro.

 

2- Tentei fazer upload de um arquivo .txt e funcionou. Não funciona com imagens, documentos do word, etc (preciso fazer upload de imagens).

 

 

Alguém tem alguma ideia? obrigado desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ConteudoBinario = Request.BinaryRead(Tamanho)
For Contador = 1 To Tamanho
 ConteudoTexto = ConteudoTexto & Chr(AscB(MidB(ConteudoBinario, Contador, 1)))
Next 

Delimitador = Left(ConteudoTexto, InStr(ConteudoTexto, vbCrLf) - 1)

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

 'VERIFICANDO EXTENSÃO
' Tipo de arquivo que esta sendo enviado
	tipo_arquivo = split(ArquivoNome,".")
	tipo_arquivo_2 = "." & tipo_arquivo(ubound(tipo_arquivo))


 ArquivoNome = "teste" & tipo_arquivo_2

 Set objArquivo = objFSO.CreateTextFile(PastaDestino & "\" & ArquivoNome, true)
    objArquivo.WriteLine ArquivoConteudo

    objArquivo.Close

    Set objArquivo = nothing
  end if
end if
Loop
Set objFSO = nothing

 

 

o que me intriga é que no site principal do IIS eu uso esse mesmo código e funciona com qualquer arquivo. Nos outros domínios (e subs) só funciona com txt.

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifica o caminho .. se ele esta fazendo entrar em pasta ou voltar pasta

 

Set objArquivo = objFSO.CreateTextFile("./"PastaDestino & "/" & ArquivoNome, true)

 

ou

Set objArquivo = objFSO.CreateTextFile("../"PastaDestino & "/" & ArquivoNome, true)

 

 

nesse trecho muda por outro

'VERIFICANDO EXTENSÃO

' Tipo de arquivo que esta sendo enviado

tipo_arquivo = split(ArquivoNome,".")

tipo_arquivo_2 = "." & tipo_arquivo(ubound(tipo_arquivo))

 

Exemplo

'VERIFICANDO EXTENSÃO

' Tipo de arquivo que esta sendo enviado

tipo_arquivo = Right(ArquivoNome, 3)

 

assim você sempre tem certeza dos ultimos 3 caracteres

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nada feito. Quando coloquei o que você falou aparece:

 

 

Microsoft VBScript runtime error '800a0034'

 

Bad file name or number

 

/users_alt_upload.asp, line 82

 

 

 

Mandei gravar em "e:\spfc\blogs\teste.jpg" (pra ter certeza do caminho) e enviei um jpg. Aí deu o erro anterior "invalid procedure or call argument". Aí mandei gravar teste.txt e enviei um txt. Gravou. Se alguém fizer ideia do que pode ser, vai ajudar e muito.

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.