Newsgroup: it.comp.www.asp
Titolo: UPLOAD & MEGABYTE= PROBLEMONE!

All'interno del mio sito, i visitatori possono inviarmi file selezionandoli direttamente
dal loro pc! Utilizzo pagine asp modificate da me solo nella grafica, per il resto
gi` create!(conoscete aruba?)Il problema h che non riesco a modificarle in modo
tale che i files inviati possano essere di dimensioni di almeno 3 Mb! (ALCUNI MI
HANNO DETTO RECENTEMENTE CHE SI TRATTA DI UN LIMITE DI TEMPO)Questa funzione h
determinante per il mio sito, perchh si occupa GRATUITAMENTE di ricevere e pubblicare
elaborati di tipo infermieristico! Vi invio i codici delle pagine, vi prego aiutatemi,
sono ancora un novellino! N.B. le pagine non sono coperte da alcun diritto d'autore!
1^ PAGINA:UPLOAD.ASP
<%Sub BuildUploadRequest(RequestBin) 
PosBeg = 1
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
boundaryPos = InstrB(1,RequestBin,boundary)
Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
Dim UploadControl
Set UploadControl = CreateObject("Scripting.Dictionary")
Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
Pos = InstrB(Pos,RequestBin,getByteString("name="))
PosBeg = Pos+6
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename="))
PosBound = InstrB(PosEnd,RequestBin,boundary)
If PosFile<>0 AND (PosFile<PosBound) Then
PosBeg = PosFile + 10
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "FileName", FileName
Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
PosBeg = Pos+14
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "ContentType",ContentType
PosBeg = PosEnd+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
Else
Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
PosBeg = Pos+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
End If
UploadControl.Add "Value" , Value 
UploadRequest.Add name, UploadControl 
BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
Loop
End Sub
Function getByteString(StringStr)
For i = 1 to Len(StringStr)
char = Mid(StringStr,i,1)
getByteString = getByteString & chrB(AscB(char))
Next
End Function
Function getString(StringBin)
getString =""
For intCount = 1 to LenB(StringBin)
getString = getString & chr(AscB(MidB(StringBin,intCount,1))) 
Next
End Function%>
2^PAGINA:OUTPUTfILE.ASP
<!--#include file="upload.asp"-->
<%Response.Expires=0
Response.Buffer = TRUE
Response.Clear
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest RequestBin
contentType = UploadRequest.Item("blob").Item("ContentType")
filepathname = UploadRequest.Item("blob").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
value = UploadRequest.Item("blob").Item("Value")
'Create FileSytemObject Component
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
'Create and Write to a File
pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
Set MyFile = ScriptObject.CreateTextFile(Left(Server.mappath(Request.ServerVariables("PATH_INFO")),pathEnd)
& filename)
For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next
MyFile.Close%>
<head>
<title></title>
</head>
<body bgcolor="#FFFFFF">
<p align="center"><font face="Verdana" size="2">
File "<b><%=filename%></b>" ricevuto con successo</font>
<p align="center"><font face="Verdana" size="2"><a href="
http://www.
.....it/public/form_upload_01.htm">Fine
Invio</a></font></p>
grazie mille!!!!!!
--
La piu' grande community italiana di sviluppatori!
 
http://forum.ASPItalia.com/
 
http://www.ASPItalia.com/

elaborati di tipo infermieristico! Vi invio i codici delle pagine, vi prego aiutatemi,
sei proprio sicuro che tutti quei mb servano?  io ogni tanto sono
bersagliato da uno spam di qualche imbecille che mi manda una
paginetta word di poche righe, però in cima c'è il suo stramaledetto
logo che fa diventare la pagina gigantesca...
senza offesa e con tutti i complimenti per la tua buona volontà,
medici ed infermiere non sono noti per la loro accortezza in querto
senso.
quanto al problema di tempo potrebbe dipendere dal fatto che se entro
un tot secondi non viene generato nessun output su schermo, asp crede
che ci sia qualche problema, anche se in realtà lo script sta girando.
questa proprietà si può modificare col comando script.timeout = x dove
x è il numero di secondi.  per default vale 90, non ricordo quale sia
il valore massimo, ma se cerchi in rete o nella docuemntazione che
*sicuramente* avrai installato lo trovi.
-- 
non studio non lavoro non guardo la tv
non vado al cinema non faccio sport

 End Function%>
Questo script non mi è nuovo... l'hai trovato su ASPToday vero?
Il problema è proprio di TimeOut infatti: questo script è utile e funzionale
per file di pochi Kb, ma per file maggiori è sconsigliabile perché
utilizzando routine interpretrate invece che compilate è notevolmente più
lento. Se devi fare l'upload di file così grossi ti consiglio di utilizzare
componenti ad hoc come ASPSmartUpload.
--
Ciao,
   Filippo Di Blasi 
fil...@puntoinformatico.it
   Webmaster(at) 
www.puntoinformatico.it
 <--- NEW!