17 messaggi dal 05 agosto 2001
www.macsiti.com
Ciao potreste darmi una mano?

Con FORM "normali" non ho problemi a passarmi le variabili da una pag all'altra mentre con questo TIPO non me le passa.
form method="POST" enctype="multipart/form-data" action="upload.asp?action=upload">
<p align="center">Nome: <input type="TEXT" name="Nome" size=30>
<BR>
<p align="center">File: <input type="file" name="blob" size=30><input type="submit" name="Enter" value="Aggiungi"></form>

nella pag upload.asp ricevo correttamente "blob" (che uso come nome per il file che devo uplodare sul server) mentre Nome non dà valore (cerco di recuperarla con Request.Form("Nome") e ho provato anche con Request.quesrystring("Nome").

Mi serve x chè creo una Directory sul server (con FSO) se non esiste. Per crearla devo avere il suo Nome e lo userò qui:

' percorso
path = Server.MapPath("/Immagini/") & Nome




Marco

Marco
E' solo un'idea. Prova anzichè a passare il paramentro ACTION="upload.asp?action=upload"
come un parametro nascosto in un campo hidden. O al massimo modificalo in
ACTION="upload.asp?Ac=upload" non vorrei mai che il parametro action dato lo confonda.



"This message was written using 100% recycled electrons"
17 messaggi dal 05 agosto 2001
www.macsiti.com
Ho provato a passarle con Hidden e non le prende.

Stò provando con SESSION ma non avendolo mai fatto non sono ancora riuscito a farlo ed il mio tutorial di VBS 5.5 manco ne parla.

Se SESSION lo sai fare fammi un esempio per favore.


Marco

Marco
265 messaggi dal 28 aprile 2001
<b>Marco Pinna ha scritto:</b>
<BLOCKQUOTE id=quote><font size=1 face="Arial" id=quote>quote:<hr height=1 noshade id=quote>
Ho provato a passarle con Hidden e non le prende.

Stò provando con SESSION ma non avendolo mai fatto non sono ancora riuscito a farlo ed il mio tutorial di VBS 5.5 manco ne parla.

Se SESSION lo sai fare fammi un esempio per favore.


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

Ciao,
per usare session devi fare cosi:
Session("action")="nomefile"

nella pagia chiamante, in questo caso Upload.asp, per richiamare la session fai cosi':
miofile=Session("action")

Ciao
Filippo

Non dir di me' se di me' non sai, pensa di te ... e poi di me' dirai.

Autore (sottoscritto)

Non dir di me' se di me' non sai, pensa di te ... e poi di me' dirai.

Autore (sottoscritto)
17 messaggi dal 05 agosto 2001
www.macsiti.com
FARE L'UPLOAD DI UNA IMMAGINE IN UNA CARTELLA UTENTE. Ringrazio per l'aiuto datomi in special modo i Forums di ASPItalia.com, Aruba.it, Tuttobanner.net, ASPCode.

A) PAGINA DI ACCESSO uploadform.asp

&lt;html&gt;&lt;head&gt;&lt;title&gt;LOGIN&lt;/title&gt;&lt;/head&gt;&lt;body&gt;
&lt;table width=360 bgcolor=#40576f cellspacing=1 align=center&gt;&lt;tr&gt;
&lt;td width=400 align=center bgcolor=#40576f&gt;&lt;FONT color=#ffffff size=2&gt;
&lt;b&gt;ESEGUI IL LOGIN&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td bgcolor="#B3D9FF"&gt;&lt;BR&gt;&lt;p align="center"&gt;&lt;b&gt;&lt;br&gt;
&lt;form method="POST" action="middle.asp?"&gt;
Nome: &lt;/font&gt;&lt;/b&gt;&lt;input type="TEXT" name="Nome" size=30&gt;&lt;br&gt;
&lt;input type="submit" name="Enter" value="Aggiungi"&gt;
&lt;/form&gt;&lt;/body&gt;&lt;/html&gt;

B) PAGINA INTERMEDIA middle.asp Per stabilire la variabile session e validare l'utente (nel mio caso con SQL o Cookies)

&lt;%
' ..... QUI valido l'utente ....
' .... SE valido:
Session("action")=Request.Form("Nome")
Response.redirect "upload.asp"
%&gt;

C) PAGINA PER L'UPLOAD upload.asp 2 FORM per l'upload immagini e per variabili al DB, Email etc

&lt;%
NewDir=session("action")
' IMPEDISCO CHE ENTRI DIRETTAMENTE E INSERISCA IMMAGINI
If NewDir ="" THEN
Response.redirect "uploadform.asp"
End IF
' CREO LA SUA DIRECTORY SE C'E' PROSEGUE CON on error resume next
Set FSO = Server.CreateObject ("Scripting.FileSystemObject")
on error resume next
' percorso
path = Server.MapPath(NewDir)
' crea la directory
FSO.CreateFolder(path)
' CONTROLLO - LI TOLGO AL MOMENTO DI PUBBLICARE
if err.Number&lt;&gt;0 then
Response.write "&lt;P&gt;Directory creata!"
else
Response.write "&lt;P&gt;Errore: " &_
err.description
end if
set FSO = Nothing
%&gt;
&lt;form method="POST" enctype="multipart/form-data" action="upload.asp?"&gt;
&lt;BR&gt;
&lt;p align="center"&gt;&lt;b&gt;&lt;font size="2"&lt;br&gt;File: &lt;/font&gt;&lt;/b&gt;
&lt;input type="file" name="blob" size=30&gt;&lt;br&gt;
&lt;input type="submit" name="Enter" value="Conferma"&gt;
&lt;/form&gt;
&lt;BR&gt;
&lt;form method="POST" action="upload.asp?action=go"&gt;&lt;BR&gt;
&lt;p align="center"&gt;&lt;b&gt;&lt;Font size="2"&gt;&lt;br&gt;
Descrizione: &lt;/font&gt;&lt;/b&gt;&lt;input type="TEXT" name="Descrizione" size=30&gt;&lt;br&gt;
&lt;input type="submit" name="Enter" value="Aggiungi"&gt;
&lt;/form&gt;&lt;BR&gt;
&lt;%
'STABILISCO LA SUA AREA DI UPLOAD
Dim folder
folder = "\uploads\" & NewDir' directory sul server con accesso in scrittura
' MIEI CONTROLLI DA TOGLIERE PRIMA DI PUBBLICARE
Response.Write NewDir
Response.write("&lt;BR&gt;")
response.write folder

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

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")
'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)
If PosFile&lt;&gt;0 AND (PosFile&lt;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

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")

'CREA COMPONENTE FileSytemObject
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
'CREA E SCRIVE IN UN 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
' QUI
' INSERISCO COSA DEVE FARE SE SCEGLIE IL SECONDO FORM action=go
' CON SELECT CASE
%&gt;
&lt;html&gt;&lt;head&gt;&lt;title&gt;UPLOAD FILE&lt;/title&gt;&lt;/head&gt;&lt;body&gt;
&lt;table border=0 width=360 bgcolor=#000000 cellspacing=1 align=center&gt;&lt;tr&gt;
&lt;td width=400 align=center bgcolor=#000000&gt;&lt;FONT color=#FFFFFF size=2&gt;
&lt;b&gt;OPERAZIONE RIUSCITA CON &lt;%=filename%&gt; !&lt;/b&gt;&lt;/FONT&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td height="30" bgcolor="#B3D9FF" align=center&gt;
&lt;a href=uploadform.asp&gt;&lt;font Size=2&gt;CAMBIA UTENTE&lt;/a&gt;&lt;/td&gt;&lt;/TR&gt;
&lt;tr&gt;&lt;td height="30" bgcolor="#B3D9FF" align=center&gt;
&lt;a href=logoff.asp&gt;ESCI&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;

D) LOGOFF - CANCELLO LA SESSION E REDIRIGO AL LOGIN

&lt;%
Session("action") = ""
Response.Redirect "uploadform.asp"
%&gt;

SAREBBERO GRADITE CORREZIONI/SUGGERIMENTI - Ciao

Marco

Marco
35 messaggi dal 12 marzo 2003
Vi spiego il problema che ho...
Depo poter far uplodare un qualunque file in una specifica cartella.
Ho provato varie soluzioni ma niente...finchè non ho visto questo codice...
Il fatto è che non riesco a farlo funzionare nonostante abbia fatto la cartella uloaders e public con diritti in scrittura.
Ho letto anche il form su aruba ma niente..
Mi aiutate a fare sta cosa visto che anch'io utilizzerò aruba??
PS visto che non devo creare una nuova cartella come elimino dal tuo codice la realizzazione della cartella? e ancora eliminatemi il controllo utente...
GRAZIEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEeeee
86 messaggi dal 02 ottobre 2001
http://forum.aspitalia.com/forum/topic.aspx?PostID=171418

Probabilmente troverai qualcosa di utile

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.