1 messaggio dal 21 gennaio 2005
Ciao,
Ho trovato uno script per l'upload di file che funziona bene tuttavia quando cerco di fare un upload di file di grandi dimensioni 5/10 MB dà un errore. Sapete consigliarmi qualcosa per far fronte a questo problema?
Ecco il codice.

Ciao e grazie

<%


Dim folder
folder = "db"


Response.Expires=0
Response.Buffer = TRUE
Response.Clear

Sub BuildUploadRequest(RequestBin)
PosBeg = 1
PosEnd = InstrB(PosBeg,RequestBin,getByteString(c
hr(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")
'Get an object name
Pos = InstrB(BoundaryPos,RequestBin,getByteStr
ing("Content-Disposition"))
Pos = InstrB(Pos,RequestBin,getByteString("name="))
PosBeg = Pos+6
PosEnd = InstrB(PosBeg,RequestBin,getByteString(c
hr(34)))
Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
PosFile = InstrB(BoundaryPos,RequestBin,getByteStr
ing("filename="))
PosBound = InstrB(PosEnd,RequestBin,boundary)
If PosFile<>0 AND (PosFile<PosBound) Then
PosBeg = PosFile + 10
PosEnd = InstrB(PosBeg,RequestBin,getByteString(c
hr(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(c
hr(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(bo
undary),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

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
Set MyFile = ScriptObject.CreateTextFile(Server.mappath(folder)&"\"&filename)

For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next

MyFile.Close
%>

<html>
<head>
<title>UPLOAD FILE</title>
</head>
<body>

<!-- conferma upload file -->
<table border=0 width=360 bgcolor=#40576f cellspacing=1 align=center>
<tr>
<td width=400 align=center bgcolor=#40576f><FONT FACE="tahoma" color=#ffffff size=2><b>Il file <%=filename%> è stato uploadato con successo.</b></FONT></td>
</tr>
<tr>
<td width="400" height="30" bgcolor="#E6E6FF" align=center><a href=uploadform.asp><font face=arial size=2 color=black>&lt; &lt; UPLOAD DI UN ALTRO FILE</font></a></td>
</tr>
<tr>
<td width="400" height="10" bgcolor="#40576f" align=right><a href=http://www.aspcode.it><font face=arial size=1 color=#ffffff><i>www.aspcode.it</i></font></a></td>
</tr>
</table>
<!-- conferma upload file -->

</body>
</html>
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
Gianni73 <Gianni73> ha scritto:
Ho trovato uno script per l'upload di file che funziona bene tuttavia quando cerco di fare un upload di file di grandi dimensioni 5/10 MB dà un errore. Sapete consigliarmi qualcosa per far fronte a questo problema?

Quale errore?

Se di Timeout del server, puoi innalzare questo limite:

Server.Timeout=1000000

Ciao

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.