15 messaggi dal 02 agosto 2002
Devo fare l'upload di file pdf con ASP, ho provato nel modo classico con il FfileSystemObject ma non ce la fa a scaricarmi file + grandi di 500Kbyte.
Conoscete qualche componenete esterno che funzioni bene ?
Va bene anche a pagamento purchè non costi cifre spropositate

Grazie mille

Luana
Modificato da Charmin il 03 settembre 2003 15.35 -
167 messaggi dal 19 marzo 2002
Puoi provare con l'oggetto ServerXMLHTTP


Dim objXMLHTTP, StrURL, StrNome
dim name_pdf
StrURL = name_pdf
Set objXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
objXMLHTTP.Open "GET", StrURL, False
' Richiama il file
objXMLHTTP.Send

' Manda il contenuto con BinaryWrite
Response.ContentType = "application/pdf"
Response.BinaryWrite objXMLHTTP.responseBody

Set objXMLHTTP = Nothing

carpe diem, quam minimum credula postero
15 messaggi dal 02 agosto 2002
Ti ringrazio moltissimo anche perchè ho visto che è un componente gratuito già incluso in IIS.
Pero non riesco a capire come devo passargli il nome del pdf, mi da sempre questo errore:

Tipo di errore:
msxml3.dll (0x80072EE6)
L'URL non utilizza un protocollo conosciuto
/Renergy/Upload/UpLoadNew.asp, line 5

e sulla linea 5 c'è il seguente codice:

objXMLHTTP.Open "GET", StrURL, False

dove strUrl è:

StrURL = "c:\temp\private\renergy\upload\Sommario.pdf"


407 messaggi dal 08 maggio 2003
Se vuoi ti posso autare io con uno script per l upload ottimo ma a pagamento (poco comunque).
Modificato da ancio il 03 settembre 2003 16.31 -
15 messaggi dal 02 agosto 2002
Si si va bennissimo tanto mica pago io ehehe
L'importante è che funzioni bene con file almeno di qualche MByte e che sia abbastanza veloce l'upload.
167 messaggi dal 19 marzo 2002
msxml3.dll....ti genera errore xchè tu hai la versione 3 del XMLHTTP, mentre nel codice che ti avevo passato ( Server.CreateObject("MSXML2.ServerXMLHTTP") ) io chiamavo la versione 2...secondo me con qualche ricerca puoi avere quello che ti serve senza spendere un euro ;-)))

carpe diem, quam minimum credula postero
15 messaggi dal 02 agosto 2002
Ti ringrazio moltissimo Dario, finalmente ho risolto, il codice esatto è il seguente:

StrURL = "http://localhost/Renergy/Sommario.pdf"
Set objXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
objXMLHTTP.Open "GET", StrURL, False
objXMLHTTP.Send
'Returns file contents As a binary data
Response.ContentType = "application/pdf"
Response.BinaryWrite objXMLHTTP.responseBody

Ora però mi servirebbe una funzione che, volendo inserire il contenuto del file in un DB, ce lo scriva in binario.

Qualcuno sa aiutarmi ?

Grazie mille in anticipo

Luana

Come non detto ho trovato la soluzione, ecco il codice completo  :

<%Server.ScriptTimeout = 1200 'Time out del server portato a 20 minuti
'Legge il file da caricare
StrURL = "http://localhost/percorso del file da caricare"
Set objXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
objXMLHTTP.Open "GET", StrURL, False
objXMLHTTP.Send

'Scrive il file su disco
FileName="percorso del file da creare"
ByteArray=objXMLHTTP.responseBody
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
'Create Stream object
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
'Specify stream type - we want To save binary data.
BinaryStream.Type = adTypeBinary
'Open the stream And write binary data To the object
BinaryStream.Open
BinaryStream.Write ByteArray
'Save binary data To disk
BinaryStream.SaveToFile FileName, adSaveCreateOverWrite

Set objXMLHTTP = Nothing
%>

E non solo è velocissimo, ma funziona anche con file da almeno 100MByte !!

Modificato da Charmin il 05 settembre 2003 16.14 -

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.