Jump to content


Photo

Erro Quando Obtenho Informações Usando Session


  • Faça o login para participar
3 replies to this topic

#1 ibreak

ibreak

    Turista

  • Usuários
  • 56 posts
  • Sexo:Não informado

Posted 09/04/2006, 17:14

Pessoal eu tenho um formulário aonde preecho todas as informações, procuro uma foto no pc para enviar e quando clico para enviar o formulário, usando o método post (neste mesmo momento é feito o upload de uma imagem sem componente), aparece um erro...

Eu faço o envio do formulário assim:

<form name="form1" action="upload_form2.asp" method="post" enctype="multipart/form-data">

Eu envio as info que são capturadas usando session...

O erro que está aparecendo é este:

Tipo de erro:
Objeto Request, ASP 0207 (0x80004005)
Não é possível usar a coleção Request.Form após chamar BinaryRead.
/news1/arquivos/adm/upload_form2.asp, line 10


Na linha 10 eu tenho isso:

SESSION ("titulo") = Request.form("titulo")

Qual pode ser o erro...

Veja abaixo código completo da página que dá o erro...

<!-- #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 ----------------------
SESSION ("titulo") = Request.form("titulo")
SESSION ("tipo") = Request.form("tipo")
SESSION ("chamada") = Request.form("chamada")
SESSION ("conteudo") = Request.form("conteudo")
SESSION ("expira") = Request.form("expira")
data=day(now)&"/"&month(now)&"/"&year(now)
SESSION ("destaque") = Request.form("destaque")

' 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/noticia" + 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("../bd/base.mdb")
set conexao = Server.CreateObject("ADODB.Connection")
conexao.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&url_conexao

'Faremos aqui a inserção de todos os dados digitados no form anterior
meubd.EXECUTE "INSERT INTO noticias (titulo, chamada, tipo, conteudo, expirar, data, destaque, foto) values ('"&titulo&"','"&chamada&"',"&tipo&",'"&conteudo&"','"&expira&"','"&data&"',"&destaque&"','"&cfoto&")"

' Mostra Mensagem de Confirmação na Tela
Response.write "Dados Cadastrados com Sucesso!"

'Logo após a inserção dos dados, mostrará uma mensagem e voltará para a página principal.asp
response.write "<script>location = 'principal.asp';alert('Sua notícia foi cadastrada com sucesso!')</script>"
%>


#2 gUiTaR_mAn

gUiTaR_mAn

    Programador ASP

  • Usuários
  • 431 posts
  • Sexo:Masculino
  • Localidade:Gaspar - SC

Posted 09/04/2006, 20:26

cara... a partir do momento que vc colocou ser form como enctype="multipart/form-data" vc não vai poder recuperar dados do formulario com o request.Form, e sua linha 10 é:

SESSION ("titulo") = Request.form("titulo")

existem algumas gambiarras pra resolver isto.. só que desse jeito não é possível
da uma olhada nesse tópico que vc vai saber o q fazer

http://forum.wmonlin...4635&hl=enctype

flw (y)
MegaClassi.com.br
Seu próximo veículo está aqui.

#3 ibreak

ibreak

    Turista

  • Usuários
  • 56 posts
  • Sexo:Não informado

Posted 10/04/2006, 00:46

Guitar eu tava vendo o link que vc indicou...

Bem tenho as seguintes dúvidas...

Tipo no primeiro campo eu usei do jeito que você indicou no seu post do link... veja:

<select name="tipo">
<% while NOT rsTipos.EOF %>
<option value="<%=rsTipos("codtipo")%>"><%=rsTipos("tipo")%></option>
<%
rsTipos.movenext
wend
%>
</select>

Já os demais campos estão assim...

<textarea name="chamada" cols="40" id="chamada"></textarea>

Eu tb tenho que mudar eles para assim:

<selected name = "chamada">
<textarea cols="40" id="chamada"></textarea>


e quando eu clicar no botão para enviar a foto ele mandará todos os dados correto para a outra página...

O comando está assim... <input type=button value="Cadastrar" onclick="document.form1.action='upload_form2.asp?tipo='+document.form1.tipo.value;document.form1.submit()">

Como e de que forma eu separo para enviar mais de um campo do formulário... pode me orientar...

Valeu por toda força.

#4 ibreak

ibreak

    Turista

  • Usuários
  • 56 posts
  • Sexo:Não informado

Posted 11/04/2006, 14:12

Alguém pode me ajudar a resolver este problema?




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq