82 messaggi dal 13 agosto 2003
Ho dato un'occhiata alla sezione di aspitalia sull'upload ma... non è che ci abbia capito un granchè.

Qualcuno ha da postarmi uno script per l'upload di file...?
Grazie...
Modificato da matrix74 il 14 dicembre 2003 17.47 -
13 messaggi dal 03 dicembre 2003
www.pagineamiche.com
<%Server.ScriptTimeout = 90000000%>
<%
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest RequestBin

'file 1
contentType = UploadRequest.Item("file1").Item("ContentType")
filepathname = UploadRequest.Item("file1").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
if not filename="" then
value = UploadRequest.Item("file1").Item("Value")
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
Set MyFile = ScriptObject.CreateTextFile(Server.mappath("files/"&filename))
For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next
MyFile.Close
set myfile = nothing


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

Response.Write filename & " Inserito con successo! <br>"
end if%>

In questo modo ti farà l'upload del file nella cartella /file
Poi la puoi modificare tu a mano come preferisci.

Questo script funziona su tutti i server, e in tutte le cartelle che abbiano permesso in scrittura, nel caso di aruba la cartella PUBLIC


Ciao

Max
__________________
Visita il mio sito:
<a href="www.vacanzeinriviera.it" target="_blank">www.vacanzeinriviera.it</a>
82 messaggi dal 13 agosto 2003
Grazie max per la tua cortesia......
13 messaggi dal 03 dicembre 2003
www.pagineamiche.com
A proposito, nello script che ti ho dato prende il file da un campo di nome file1...

Quindi dovresti fare una pagina del tipo:

<FORM METHOD="post" ENCTYPE="multipart/form-data" ACTION="upload.asp">
<input type="file" name="file1">
<INPUT TYPE="submit" NAME="Enter" value="Invia">
</FORM>


Ciao

Max
__________________
Visita il mio sito:
<a href="www.vacanzeinriviera.it" target="_blank">www.vacanzeinriviera.it</a>
82 messaggi dal 13 agosto 2003
Mi è successa una cosa pazzesca....
Il tuo script per l'upload funziona perfettamente... oggi ho inserito gli stessi file form.htm ed upload.asp che funzionano su tutti i miei siti (Che si appogiano su NT) su un dominio che si appoggia server Win2000
e mi viene dato un errore interno del server 500

Ma che significa che win2000 non gestisce questo metodo....
Ciao e grazie

13 messaggi dal 03 dicembre 2003
www.pagineamiche.com
Strano, ma sei sicuro che la cartella in cui fai l'upload abbia permessi in scrittura?

Max
__________________
Visita il mio sito:
<a href="www.vacanzeinriviera.it" target="_blank">www.vacanzeinriviera.it</a>
82 messaggi dal 13 agosto 2003
I permessi su cgi-bin sono ok.....
3.122 messaggi dal 16 maggio 2002
Dai un'occhiata anche allo script che trovi su http://www.asp101.com (pure asp file upload)

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!

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.