none
UploadRequest.Item vazio! RRS feed

  • Pergunta

  • Olá pessoal,

     

    Eu tenho um combo em uma página, onde a pessoa vai preenchendo e vai complementando o próximo combo, mas se a pessoa não selecionar todos os combos ao inserir o arquivo no banco com esses combos pela metade da o seguinte erro:

     

    Objeto necessário: 'UploadRequest.Item(...)'
    /afeirita/painel/produtos/inserir_produto.asp, line 24
     

    Linha: subcategoria3 = UploadRequest.Item("subcategoria3").Item("Value")
     

    Como faço para que os combos que estiverem vazios não interfira na minha página que irá gerar o insert?

     

    Já use On Error Resume Next mas com ele acho que não deixa os outros dados inserirem no banco corretamente... Avisa que inseriu mas está vazio...Alguém tem alguma dica para isso?

     

    obrigado!

     

    Marcelo

    segunda-feira, 8 de setembro de 2008 14:24

Respostas

  • Marcelos tente fazer assim:

    if UploadRequest.Exists("subcategoria3") then
    subcategoria3 = UploadRequest.Item("subcategoria3").Item("Value")
    end if

    Abraço

    Estevam
    segunda-feira, 8 de setembro de 2008 16:37

Todas as Respostas

  • Marcelo, tente fazer uma verificação antes da atribuição

    if not isNull(UploadRequest.Item("subcategoria3").Item("Value")) then
         subcategoria3 = UploadRequest.Item("subcategoria3").Item("Value")
    end if

    Faça um teste e veja se funciona.

    Abraço

    Estevam
    segunda-feira, 8 de setembro de 2008 15:45
  • Continua com erro

     

    Objeto necessário: 'UploadRequest.Item(...)'
    /afeirita/painel/produtos/inserir_produto.asp, line 23

     

    linha 23: if not isNull(UploadRequest.Item("subcategoria3").Item("Value")) then
         subcategoria3 = UploadRequest.Item("subcategoria3").Item("Value")
    end if

     

    O que acontece é o seguinte, quando o UploadRequest.Item é criado e não existe algum campo la no formulário que corresponda com o UploadRequest.Item então ele da esse erro.

     

    Se vc cria ola=UploadRequest.Item("ola").Item("Value")  e não existe esse campo Ola no form, ele da esse erro.

     

    No meu caso eu estou com um combox dinâmico que pode gerar até 5 combox... Mas tem informações do banco que gera até 2 ou 3 combox deixando os outros combos: 4 e 5 fora do formulario ou tipo inexistente, então esses 4 e 5 da erro la no ("subcategoria4 ou 5").Item("Value")) , entende?

    segunda-feira, 8 de setembro de 2008 15:53
  • Marcelo, tem como voce passar o código desta página que voce esta tentando recuperar as informações.

    Abraço

    Estevam
    segunda-feira, 8 de setembro de 2008 16:01
  • Essa é onde recupero os dados e da o erro:

     

    Code Snippet

    <!-- #include file = "upload_funcoes.asp" -->
    <!--#include file="nivel.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 ----------------------
    destaque = UploadRequest.Item("destaque").Item("Value")
    descricao = UploadRequest.Item("descricao").Item("Value")
    categoria = UploadRequest.Item("categoria").Item("Value")

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

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

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

    if not isNull(UploadRequest.Item("subcategoria3").Item("Value")) then
         subcategoria3 = UploadRequest.Item("subcategoria3").Item("Value")
    end if


    subcategoria4 = UploadRequest.Item("subcategoria4").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("afeirita/produtos/")
    pasta = "c:/afeirita/produtos/"
    'pasta = "c:\domains\afeirita.com.br\wwwroot\produtos"
    'nome_foto = ""&nome_foto
    nome_foto = "/"&nome_foto

     

    ' pasta + nome dos arquivos
    cfoto = "produtos" + 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

     

     

    segunda-feira, 8 de setembro de 2008 16:15
  • Tive tentando usar algo com:

     

    On Error Resume Next
    Err.Clear
    On Error Resume Next
    If Err.Number <> 0 Then
    On Error GoTo 0

    Algo assim, pois ai os erros que são esses campos inexistente do form que vem para essa pagina Upload e da erro poderia ser tratado sem generalizar tudo e assim não ficar falando que rodou normal mas o banco continua vazio...

    segunda-feira, 8 de setembro de 2008 16:31
  • Marcelos tente fazer assim:

    if UploadRequest.Exists("subcategoria3") then
    subcategoria3 = UploadRequest.Item("subcategoria3").Item("Value")
    end if

    Abraço

    Estevam
    segunda-feira, 8 de setembro de 2008 16:37
  • Ok, funcionou!

     

    Valeu!

    segunda-feira, 8 de setembro de 2008 17:49