Ho un problema stranissimo, allora uso questo script per inviare un file di 5,8 MB
al termine dell'upload vale a dire quando arriva al 100% del caricamento ottengo questo errore
----------------------------------------------- >
ERRORE Microsoft VBScript runtime error '800a01a8' Object required: '' /uploadFilm.asp, line 19
----------------------------------------------- > FINE a quel numero di rigo corrisponde
DatiRicevuti = Request.BinaryRead(ByteRicevuti)
------------------------------------------------ > Rigo errore
premesso che se provo ad uploddare un file di 2 M.B. il tutto funziona benissimo, allora ho pensato bene di impostare per primo
<%
Server.ScriptTimeout = 5400
%>
dandogli un tempo abbastanza lungo per il Timeout poi ho impostato >
ucase(EstensioneFile1) = ucase(".mp4")) AND DimensioneFile1 < 66757202148438 then
accertandomi di stare sopra la dimensione del file che sto inviando, ma l'errore persiste, che altro si può fare? Mi rivolgo ai grandi del forum, Roby, Cavicchi, Baol ecc.ecc. accetto anche soluzioni a pagamento purché nei limiti della ragione, grazie.
Questo è il resto dello script che già conoscete in questo forum, tra virgolette già discusso e rielaborato per file di grandi dimensioni ma a me non sembra cosi però visto che sopra i due mega va in tilt.
<%
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
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)
'Recupero campi diversi dal file
if instr(Intestazione,"Titolo") > 0 then
Titolo = ContenutoFile
end if
if instr(Intestazione,"Testo") > 0 then
Testo = ContenutoFile
end if
'fine
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
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
Set FSO = CreateObject("Scripting.FileSystemObject")
Upload1 = True
DimensioneFile1 = len(ContenutoFile)
EstensioneFile1 = right(NomeFile,4)
if (len(NomeFile)-4) > 0 then
NomeFile1 = left(NomeFile,len(NomeFile)-4)
end if
if (ucase(EstensioneFile1) = Ucase(".avi") or Ucase(EstensioneFile1) = ucase(".mpg") or ucase(EstensioneFile1) = ucase(".wmv") or ucase(EstensioneFile1) = ucase(".mov")or ucase(EstensioneFile1) = ucase(".mp4")) AND DimensioneFile1 < 66757202148438 then
Set textStream = FSO.CreateTextFile(server.MapPath(logo) & "/"&NomeFile1&session.SessionID&"F"&EstensioneFi le1, True, False)
textStream.Write ContenutoFile
textStream.Close
Set textStream = Nothing
contF=1
else
session("film")="no"
response.Write("Il formato del filmato non è valido o la dimensione del file è troppo grande. I formati supportati sono .avi, .mpg, .wmv, .mov, .mp4 e la dimensione massima è di MB. 6.6757202148438
</br> <center> < < Torna Indietro </center> ")
end if
Set FSO = Nothing
end if
next
End if
if contF=1 then
%>