Newsgroup: it.comp.www.asp
Titolo: Request.BinaryRead vs Request.form

Salve a tutti,
Spero mi perdonerete la lunghezza del post ma
vorrei spiegare per bene il problema, magari è una sciocchezza
e lo risolviamo meglio se sono dettagliato nella spiegazione.
Sto lavorando su un applicazione per fare degli upload solo con asp, senza
componenti esterni,
ho trovato in rete un codice molto ben fatto e molto chiaro che pero ora
devo modificare.
Il codice utilizza:
A) la pagina uno per selezionare il file
B) e la pagina 2 per fare l'upload
Il codice della pagina uno è il seguente:
<FORM METHOD="post" ENCTYPE="multipart/form-data" ACTION="upload.asp">
File : <INPUT TYPE="file" NAME="nomedelfile" ><BR>
<INPUT TYPE="submit" NAME="Enter" value=" Upload ">
</FORM>
quindi tramite il tag di tipo FILE selezioniamo il file per l'upload
Il codice iniziale della pagina DUE è il seguente:
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest  RequestBin
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")
il tutto funziona perfettmente.
Il mio problema e che non sono riuscito a trovare info per poter capire
chiaramente
come "funziona" l'oggetto UploadRequest e le proprieta e i metodi che
vengono utilizzati.
Infatti se io modifico la prima pagina in questo modo:
<FORM METHOD="post" ENCTYPE="multipart/form-data" ACTION="upload.asp">
  <INPUT TYPE="text" NAME="nomedelfile" value="d:\uno.txt"><BR>
<INPUT TYPE="submit" NAME="Enter" value=" Upload ">
</FORM>
cione con l'imput type= Text e non file la pagina due non mi restituisce
niente
cioe' le istruzioni della pagina due
contentType = UploadRequest.Item("file1").Item("ContentType")
filepathname = UploadRequest.Item("file1").Item("FileName")
value = UploadRequest.Item("file1").Item("Value")
mi restituiscono una  stringa vuota senza percio poter fare l'upload,
cosa che non succede se utilizzo un tag input di tipo file
Quindi per concludere vorrei modificare le istruzioni di cui sopra affinche
"leggano"
anche i valori passati da un tag imput di tipo text e non file.
Non vi dico che ho provato in diversi modi, ma senza una documentazione è
difficile.
Vi prego non chiedetemi perche il nome del file lo devo mettere in un tag di
tipo text. :-)
Spero mi aiutiate anche con dei riferimenti per la documentazione
GRAZIE in anticipo
antonio
ICQ 120821421

tipo text. :-)
Perchè vuoi utilizzare un tag di tipo text??? ;-)
Ciao

dovresti trovare il nome del file.
Dentro value non c'e' il nome del file ma il contenuto!!
quindi se non si prende il valore "giusto", tamite un campo file,
 il file sul server viene scritto ma con contenuti "strani".
Comunque ho risolto ugualmente utilizzando
un piccolo component per fare ftp
ciao
antonio
ICQ 120821421

 campi  nel form (per far inserire nick, password etc) e funziona.
In effetti questo script ricorda, anche se e' un po' piu' incasinato, uno
script scritto da me molto tempo fa', per uploadare tramite la porta 80 dei
file binary e poi leggerli dal lato server.
Il tutto funziona piu' o meno come e' stato spiegato all'inizio di questo
theard, una pagina manda in formato data, la seconda pagina prende i dati e
li traduce da multipart/form-data (unico formato per passarli tramite http)
a binary, dopo di che possono essere salvati, unico neo, e' la lentezza nel
trasferimento dei file, ma in ogni caso elimina l'eventuale problema di
mandare file attraverso firewall o spazi web dove non possono essere
utilizzati dll e/o ftp.
Se ne avete bisogno vedo di postare il codice magari commentato (se lo trovo
in verisone pulita, visto che per ora e' piu' che sommerso dal codice che
non c'entra :P
Ciao ;^)=
--
--
Massimo "Red Foxy" Ciccio'
ICQ: 65721997
MSN: 
r3d...@hotmail.com
Home Page: 
http://www.redfoxy.go.to/
Web Master of Quantum Leap: 
http://ql.programmazione.it