32 messaggi dal 20 gennaio 2004
Quando metto in produzione un file asp con il seguente codice, che serve per uplodare files, mi da errore nell 'ultima riga.
Ho provato con files molto piccoli e tutto funzoina, mentre basta un file di 100k x avere errore.

Con rs("mBin").AppendChunk gli vanno bene solo valori molto piccoli.

Vi chiedo quindi se sapete qual'è la dll che viene richiamata da questo codice, così la registro anche sul server in produzione.

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Fields.Append "mBin", 201, r.TotalBytes
rs.Open()
rs.AddNew()
rs("mBin").AppendChunk r.BinaryRead(r.TotalBytes)

Grazie
27 messaggi dal 01 dicembre 2003
Qui non si può vedere se utilizzi dll per fare l'upload c'è solamente la generazione di un recordset con inserimento nel DB !

dovresti postare dove definisce quel r. (erre puntato!)

Steweb
32 messaggi dal 20 gennaio 2004
Per me bisognerebbe sarebe la ddl che viene richiamata quando si creano dei recordset, cmq se ti può aiutare ti posto tutta la funzione:


Public Function ParseRequest(r)
Dim contenttypelist, rs, requeststring, boundry, data, i, infoend, info, value, item, ii, keyexists, iv
ReDim m_itemlist(-1)
contenttypelist = Split(LCase(r.ServerVariables("HTTP_CONTENT_TYPE")), ";")
If InStr(contenttypelist(0), "multipart/form-data") = 0 Then Err.Raise 513, "UploadManager", "Form non di tipo ""multipart/form-data"""
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Fields.Append "mBin", 201, r.TotalBytes
rs.Open()
rs.AddNew()
rs("mBin").AppendChunk r.BinaryRead(r.TotalBytes)
rs.Update()
requeststring = CStr(rs("mBin"))
boundry = Split(contenttypelist(1), "=")(1)
data = Split(requeststring, boundry)
For i = 0 To UBound(data)
infoend = InStr(data(i), vbCrLf & vbCrLf)'two sets of crlf mark the end of the information about this field; everything after that is the value
If infoend > 1 Then
info = Mid(data(i), 2, infoend - 2) 'pull the info for this field, minus the stuff at the ends...
value = Mid(data(i), infoend + 4, Len(data(i)) - infoend - 7) 'skip the crlf pairs at the start and the crlf-- at the end: length = Len(data(i)) - 4 - (infoend + 4) + 1 = Len(data(i)) - 4 - infoend - 4 + 1 = Len(data(i)) - infoend - 7
If InStr(LCase(info), "filename=") > 0 Then
Set item = New RequestItemFile
item.Info = info
item.Value = value
Else
Set item = New RequestItem
item.Info = info
item.Value = value
End If
' field exists in m_itemlist?
keyexists = False
For ii = 0 To UBound(m_itemlist) Step 2
If m_itemlist(ii) = LCase(item.Name) Then
iv = m_itemlist(ii + 1)
ReDim Preserve iv(UBound(iv) + 1)
Set iv(UBound(iv)) = item
m_itemlist(ii + 1) = iv
keyexists = True
Exit For
End If
Next
If Not keyexists Then
ReDim Preserve m_itemlist(UBound(m_itemlist) + 2)
m_itemlist(UBound(m_itemlist) - 1) = LCase(item.Name)
m_itemlist(UBound(m_itemlist)) = Array(item)
End If
End If
Next
End Function
27 messaggi dal 01 dicembre 2003
il recordset si genera per interagire tramite ADODB con il Database !
Non compredo cosa chiedi ! Non c'è nessuna Dll, intesa come compenente esterno richiamato in questa funzione.
Molto probabilemte è parte di un codice di upload dove per l'upload si usa una libreria come persist.upload o altri , da qui non si vede.

Se mi dici la .dll che genera il recordset ! non saprei che risponderti ......

Steweb
33 messaggi dal 24 agosto 2006
la classe di cui stiamo parlando e' uploadmanger.asp

questo e' il sito di riferimento dal quale si puo' scaricare l'asp che serve per fare l'upload dei file http://www.guru4.net/articoli/asp-upload/.

Il problema grosso è che NON CAPISCO PERCHE' questo script funziona benissimo su tutti i browser tranne che su CHROME... io ho un progetto che integra questo script e vi chiedo se potete aiutarmi a capire il perche'...

Se usate lo script noterete che Chrome (e solo lui) restituisce un errore
Errore di run-time di Microsoft VBScript error '800a01a8'
Necessario oggetto


Mi chiedo... ma vbscript non dovrebbe essere uguale su tutti i browser?

Inoltre vi chiederei di darmi una mano avrei una certa urgenza...

grazie mille in anticipo a tutti coloro che vorranno cercare di far luce su questo mistero...

grazie
33 messaggi dal 24 agosto 2006
RISOLTO!!!!!!

Ciao a tutti....

dai, picchia e mena ho risolto il problema...

lo riporto qui per coloro che avessero riscontrato lo stesso errore...

praticamente GOOGLE CHROME passa un boundary diverso da Explorer... in particolare con l'aggiunta di maiuscole minuscole....

Quindi quando la procedura fa lo split della Request String in Chrome non viene fatto bene perché la procedura non tiene conto delle minuscole/maiuscole....

è sufficiente aggiungere alla riga di codice dello split i parametri per confrontare il testo fregandosene delle maiuscole minuscole....





data = Split(requeststring, boundry, -1, 1)



Grazie comunque a tutti

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.