17 messaggi dal 28 marzo 2001
Qualcuno sa se è possibile(mi hanno detto di si) effettuare l'upload da pagine asp senza dover registrare dll sul server e se si quali istruzioni devo utilizzare? grazie

blaupunkt!

blaupunkt!
358 messaggi dal 05 marzo 2001
<b>milite ha scritto:</b>
<BLOCKQUOTE id=quote><font size=1 face="Arial" id=quote>quote:<hr height=1 noshade id=quote>
Qualcuno sa se è possibile(mi hanno detto di si) effettuare l'upload da pagine asp senza dover registrare dll sul server e se si quali istruzioni devo utilizzare? grazie

blaupunkt!
<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Arial" size=2 id=quote>

Prova questo script:

&lt;%Response.Buffer = true
Function BuildUpload(RequestBin)
'Get the boundary
PosBeg = 1
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
boundaryPos = InstrB(1,RequestBin,boundary)
'Get all data inside the boundaries
Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
'Members variable of objects are put in a dictionary object
Dim UploadControl
Set UploadControl = CreateObject("Scripting.Dictionary")
'Get an object name
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)
'Test if object is of file type
If PosFile&lt;&gt;0 AND (PosFile&lt;PosBound) Then
'Get Filename, content-type and content of file
PosBeg = PosFile + 10
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
'Add filename to dictionary object
UploadControl.Add "FileName", FileName
Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
PosBeg = Pos+14
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
'Add content-type to dictionary object
ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "ContentType",ContentType
'Get content of object
PosBeg = PosEnd+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
Else
'Get content of object
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 Function

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

If request("Action")="1" then
' Response.Clear
byteCount = Request.TotalBytes

RequestBin = Request.BinaryRead(byteCount)

Set UploadRequest = CreateObject("Scripting.Dictionary")

BuildUpload(RequestBin)

If UploadRequest.Item("blob").Item("Value") &lt;&gt; "" Then

contentType = UploadRequest.Item("blob").Item("ContentType")
filepathname = UploadRequest.Item("blob").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
FolderName = UploadRequest.Item("where").Item("Value")
'Quella seguente è l'unica riga da me modificata (oltre al messaggio)
'non capisco perché l'autore l'abbia fatta così complicata...forse non conosceva il server.MapPath? Bah!
' Path = Mid(Request.ServerVariables("PATH_TRANSLATED"), 1, Len(Request.ServerVariables("PATH_TRANSLATED")) - Len(Request.ServerVariables("PATH_INFO"))) & "\"
Path = Server.MapPath("./")
ToFolder = Path & "\" & FolderName
value = UploadRequest.Item("blob").Item("Value")
filename = ToFolder & "\" & filename
Set MyFileObject = Server.CreateObject("Scripting.FileSystemObject")
Set objFile = MyFileObject.CreateTextFile(filename)

For i = 1 to LenB(value)
objFile.Write chr(AscB(MidB(value,i,1)))
Next
objFile.Close
Set objFile = Nothing
Set MyFileObject = Nothing
End If
Set UploadRequest = Nothing
Response.Write "Upload effettuato con successo!"
End If%&gt;
&lt;form METHOD="POST" ENCTYPE="multipart/form-data" action="upload.asp?Action=1" name="form1" id="form1"&gt;
&lt;table cellspacing="0" cellpadding="3" width="100%" border="0"&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;b&gt;Select a file to upload: &lt;/b&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;input TYPE="file" NAME="blob" value&gt;
&lt;input TYPE="HIDDEN" NAME="where" value="Images"&gt;
&lt;/td&gt;
&lt;tr&gt;
&lt;tr&gt;
&lt;td colspan="2" align="center"&gt;
&lt;input TYPE="submit" NAME="Upload" Value="Click to Upload"&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/form&gt;

Attenzione che:
1. Lo script deve risiedere nella root
2. per default fa l'upload nella cartella Images
3. Assicurati che il web user abbia i permessi in lettura/scrittura/modifica/cancellazione su questa cartella.

Ciao
Il :P ianista

17 messaggi dal 28 marzo 2001
Grazie PIANISTA ti faro sapere il risultato...

blaupunkt!

blaupunkt!

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.