Upload arquivo sem componente + dados adicionais
Boa tarde a todos.
Peguei um código para fazer upload de arquivos sem componente. Agora, quando precisei e fui usar, descobrí que este código não me permite usar um Request nele. Gostaria que me ajudassem.
O problema é assim:
Existe uma página chamada 'noticias.asp' com o seguinte:
<FORM method="post" action="upload.asp" enctype="multipart/form-data" id=form1 name=form1>
<P>Imagem:<br>
<INPUT type="file" id=qimg style="WIDTH: 370px; HEIGHT: 20px" name=qimg></P>
<INPUT style="WIDTH: 110px; HEIGHT: 22px" type=button onclick="fncValida()" value="Gravar notícia" id=submit1 name=submit1></P>
</form>
Eu incluí um campo de texto nesse arquivo:
<P>Texto:<br>
<TEXTAREA id=qconteudo style="WIDTH: 370px; HEIGHT: 100px" name=qconteudo cols=22></TEXTAREA></P>
o arquivo "upload.asp" contém:
<%@ Language=VBScript %>
<%
Dim Contador, Tamanho
Dim ConteudoBinario, ConteudoTexto
Dim Delimitador, Posicao1, Posicao2
Dim ArquivoNome, ArquivoConteudo, PastaDestino
Dim objFSO, objArquivo
PastaDestino = Server.MapPath("fig_noticias") & "\"
'*** 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)
'*** Percore a String Procurando os Campos ***
'*** Identifica os Arquivos e Grava no Disco ***
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Posicao1 = InStr(ConteudoTexto, Delimitador) + Len(Delimitador)
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
%>
Como vocês vêem é bem simples. O que ocorre é que eu quero gravar um conteúdo de texto relacionado à imagem no meu banco de dados. Seria uma noticia. Mas ao dar 'Request.Form("qconteudo")' volta um erro dizendo que por usar 'Request.BinaryRead' não posso mais usar o '.Form'.
O que eu faço? alguém sabe algum outro jeito mais simples talvez de resolver o problema?
valeu.
Discussão (4)
Carregando comentários...