Aloha Galera,
to precisando de um código ou alguma dica de como implementar em asp um código para se fazer upload... mas tem q ser de mais de 1 arquivo... por exemplo: colocar uns 5 objetos de formulário do tipo File e ao clicar em enviar.. ele faz o upload dos 5 arquivos ou dos que tiverem o value diferente de vazio... entenderam??? tenho um código aki que faz upload de 1 numa boa.. sem usar nenhum componente... atraves do multipart/form.... segue o código abaixo... v c alguem consegue implementa-lo para mais de 1 arquivo... desde ja agradeço!
---- Primeiro chamo a função Upload()
Public Function Upload()
Dim file
stream.Type = 1
stream.Open
ParsePost()
If uploadedFileSize<=0 Then
Upload = 1
ElseIf not FSO.FolderExists(path) Then
Upload = 2
Else
If CheckExtension(uploadedFileName) Then
on error resume next
stream.SaveToFile FSO.BuildPath(path, uploadedFileName), 2
If err.Number<>0 Then
Upload = 3
Else
Upload = 0
End If
Else
Upload = 4
End If
End If
stream.Close
End Function
--- Funcão ParsePost() que trata o conteudo do multipart/form.
Private Sub ParsePost()
Dim biData, sInputName
Dim nPosBegin, nPosEnd, nPos, vDataBounds, nDataBoundPos
Dim nPosFile, nPosBound
Dim tmpStream
biData = Request.BinaryRead(Request.TotalBytes)
nPosBegin = 1
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))
If (nPosEnd-nPosBegin) <= 0 Then Exit Sub
vDataBounds = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
nDataBoundPos = InstrB(1, biData, vDataBounds)
nPos = InstrB(nDataBoundPos, biData, CByteString("Content-Disposition"))
nPos = InstrB(nPos, biData, CByteString("name="))
nPosBegin = nPos + 6
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
sInputName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
nPosFile = InstrB(nDataBoundPos, biData, CByteString("filename="))
nPosBound = InstrB(nPosEnd, biData, vDataBounds)
If nPosFile <> 0 And nPosFile < nPosBound Then
nPosBegin = nPosFile + 10
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
uploadedFileName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
uploadedFileName = Right(uploadedFileName, Len(uploadedFileName)-InStrRev(uploadedFileName, ""))
nPos = InstrB(nPosEnd, biData, CByteString("Content-Type:"))
nPosBegin = nPos + 14
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))
contentType = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
nPosBegin = nPosEnd+4
nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
Set tmpStream = Server.CreateObject("ADODB.Stream")
tmpStream.Type = 1
tmpStream.Open
tmpStream.Write biData
tmpStream.Position = nPosBegin-1
tmpStream.CopyTo stream, nPosEnd-nPosBegin
Set tmpStream = Nothing
uploadedFileSize = stream.Size
End If
End Sub
' String to byte string conversion
Private Function CByteString(sString)
Dim nIndex
For nIndex = 1 to Len(sString)
CByteString = CByteString & ChrB(AscB(Mid(sString,nIndex,1)))
Next
End Function
' Byte string to string conversion
Private Function CWideString(bsString)
Dim nIndex
CWideString =""
For nIndex = 1 to LenB(bsString)
CWideString = CWideString & Chr(AscB(MidB(bsString,nIndex,1)))
Next
End Function
End Class