tempo fa usai lo script di cui all'articolo su freeasp di html.it e sul loro forum mi diedero un paio di funzioni da integrare allo script per risolvere problemi di gigantismo dei file da uploadare
posto il codice completo del file asp che esegue l'upload
(c) html.it
-------------------------------------------------
<%
dim Upload1
dim nomeFilemio
dim nomeDescrittivo
Function RSBinaryToString(xBinary)
Dim Binary
If vartype(xBinary)=8 Then Binary = MultiByteToBinary(xBinary) Else Binary = xBinary
Dim RS, LBinary
Const adLongVarChar = 201
Set RS = CreateObject("ADODB.Recordset")
LBinary = LenB(Binary)
If LBinary>0 Then
RS.Fields.Append "mBinary", adLongVarChar, LBinary
RS.Open
RS.AddNew
RS("mBinary").AppendChunk Binary
RS.Update
RSBinaryToString = RS("mBinary")
Else
RSBinaryToString = ""
End If
End Function
Function MultiByteToBinary(MultiByte)
Dim RS, LMultiByte, Binary
Const adLongVarBinary = 205
Set RS = CreateObject("ADODB.Recordset")
LMultiByte = LenB(MultiByte)
If LMultiByte>0 Then
RS.Fields.Append "mBinary", adLongVarBinary, LMultiByte
RS.Open
RS.AddNew
RS("mBinary").AppendChunk MultiByte & ChrB(0)
RS.Update
Binary = RS("mBinary").GetChunk(LMultiByte)
End If
MultiByteToBinary = Binary
End Function
Upload1=false
percorso=Server.MapPath("allegati/download")
ByteRicevuti = Request.TotalBytes
if ByteRicevuti > 0 then
DatiRicevuti = Request.BinaryRead(ByteRicevuti)
FileBinario = RSBinaryToString(DatiRicevuti)
FirmaFile = left(FileBinario,instr(FileBinario,"" & vbCrLf)-1)
ArrPezzi = split(FileBinario,FirmaFile)
for item = 1 to ubound(ArrPezzi)-1
Inizio = instr(ArrPezzi(item),"" & vbCrLf & "" & vbCrLf)
Intestazione = left(ArrPezzi(item),Inizio-1)
Inizio = Inizio + len("" & vbCrLf) + len("" & vbCrLf)
ContenutoFile = mid(ArrPezzi(item),Inizio,len(ArrPezzi(item))-Inizio-1)
if instr(Intestazione,"testo1") > 0 then
testo1 = ContenutoFile
end if
if instr(Intestazione,"file1") > 0 then
i = instr(Intestazione,"filename=")
j = instr(i + 10,Intestazione,chr(34))
NomeUpload = mid(Intestazione,i + 10,j-i-10)
i = instrRev(NomeUpload,"\")
if i<>0 then
NomeFile = mid(NomeUpload,i + 1)
else
NomeFile = NomeUpload
end if
'mioInizio = instr(ArrPezzi(2),"" & vbCrLf & "" & vbCrLf)
'mioIntestazione = left(ArrPezzi(2),mioInizio-1)
'mioInizio = mioInizio + len("" & vbCrLf) + len("" & vbCrLf)
'mioContenutoFile = mid(ArrPezzi(2),mioInizio,len(ArrPezzi(2))-mioInizio-1)
mioInizioDescr = instr(ArrPezzi(2),"" & vbCrLf & "" & vbCrLf)
mioIntestazioneDescr = left(ArrPezzi(2),mioInizioDescr-1)
mioInizioDescr = mioInizioDescr + len("" & vbCrLf) + len("" & vbCrLf)
mioContenutoFileDescr = mid(ArrPezzi(2),mioInizioDescr,len(ArrPezzi(2))-mioInizioDescr-1)
nomeDescrittivo=mioContenutoFileDescr
if i<>0 then
Set FSO = CreateObject("Scripting.FileSystemObject")
Upload1 = True
DimensioneFile1 = len(ContenutoFile)
'EstensioneFile1 = right(ContenutoFile,3)
EstensioneFile1 = right(NomeFile,4)
'if mioContenutoFile<>"" then
'NomeFile1 = mioContenutoFile
'else
NomeFile1 = left(NomeFile,len(NomeFile)-4)
'end if
'Set textStream = FSO.CreateTextFile(server.mappath(percorso & NomeFile1), True, False)
Set textStream = FSO.CreateTextFile(Server.MapPath("allegati/download") & "/"&NomeFile1&EstensioneFile1, True, False)
textStream.Write ContenutoFile
textStream.Close
Set textStream = Nothing
Set FSO = Nothing
end if
end if
next
End if
%>