Tenho um arquivo para fazer upload que funciona normalmente quando é fornecido o endereço correto para o arquivo transferido, porém gostaria de estar selecionando o endereço dentro do formulário no momento do envio, e é exatamente ai que ocorrem os erros.
O explorer diz: Tipos incompatíveis: 'Request.TotalBytes|Request.BinaryRead'
Vejam o código e se aguém puder me ajudar ficarei grato:
Pergunta
Guest Socorro!!! UpLoad
Olá caros colegas de programação!!!
Tenho um arquivo para fazer upload que funciona normalmente quando é fornecido o endereço correto para o arquivo transferido, porém gostaria de estar selecionando o endereço dentro do formulário no momento do envio, e é exatamente ai que ocorrem os erros.
O explorer diz: Tipos incompatíveis: 'Request.TotalBytes|Request.BinaryRead'
Vejam o código e se aguém puder me ajudar ficarei grato:
Formulário:
<html>
<head>
<title>Untitled</title>
</head>
<body>
<form action="upload.asp" method="post" enctype="multipart/form-data">
<table width="75%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="19%"> </td>
<td width="81%"> </td>
</tr>
<tr>
<td>Selecione a pasta</td>
<td><select name="local" id="local">
<option value="0">Selecione</option>
<option value="imagens">Imagens</option>
<option value="Banners">Banners</option>
<option value="upload">Upload</option>
</select></td>
</tr>
<tr>
<td>Arquivo 1:</td>
<td><input type="file" name="txtArquivo1"></td>
</tr>
<tr>
<td>Arquivo 2: </td>
<td><input type="file" name="txtArquivo2"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="cmdEnviar" value="Enviar"></td>
</tr>
</table>
</form>
</body>
</html>
Arquivo que recebe as informações vindas do formulário:
<%
Dim Contador, Tamanho
Dim StrLocal
Dim ConteudoBinario, ConteudoTexto
Dim Delimitador, Posicao1, Posicao2
Dim ArquivoNome, ArquivoConteudo, PastaDestino
Dim objFSO, objArquivo
StrLocal= Request.Form("Local")
PastaDestino = Server.MapPath("/"&StrLocal)
'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
%>
Tipo de erro:
Objeto Request, ASP 0206 (0x80004005)
Não é possível chamar BinaryRead após usar a coleção Request.Form.
/upload.asp, line 17
Se alguém puder ajudar ficarei grato.
Muito Obrigado a todos.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.