3 pagine in totale: <<Indietro 1 [2] 3 Avanti >>
Vediamo una richiesta "tipo" serializzata per fare un esempio pratico:
-----------------------------7d1193202027a
Content-Disposition: form-data; name="description1"
la descrizione del file 1
-----------------------------7d1193202027a
Content-Disposition: form-data; name="uploadFile"; filename="D:\dev\idev\upload\upload_Local\sendFile.txt"
Content-Type: text/plain
Questa è una prova di invio
di file con upload.
-----------------------------7d1193202027a
Content-Disposition: form-data; name="description2"
la descrizione del SECONDO file
-----------------------------7d1193202027a
Content-Disposition: form-data; name="uploadFile2"; filename="D:\dev\idev\upload\upload_Local\sendFile2.txt"
Content-Type: text/plain
Questa è la seconda prova di invio
di file con upload.
-----------------------------7d1193202027a
Content-Disposition: form-data; name="SendFile"
Submit
-----------------------------7d1193202027a--Questa è una "vera" richiesta serializzata e scritta su disco e proviene da un submit da un form che ha:
<form action="" method="post" encType="multipart/form-data">
<INPUT TYPE="TEXT" NAME="description1">
<INPUT TYPE="FILE" NAME="uploadFile">
<INPUT TYPE="TEXT" NAME="description2">
<INPUT TYPE="FILE" NAME="uploadFile2">
<INPUT TYPE="SUBMIT" NAME="SendFile">
</form>Da notare che action richiama la stessa pagina ASP per avere una form, cosidetta, "rientrante" che è di più facile gestibilità e manutenzione.
Guardano la richiesta serializzata si nota subito che la prima riga contiene un numero che poi si ripete per separare i vari campi. Questo numero viene, quindi, utilizzato per fare un loop.
In ogni ciclo del loop si recuperano: nome dell'input field (tramite la stringa: "name") e il "contenuto" (ovviamente completato dall'utilizzatore). Quando il campo è un TYPE=FILE (utilizzato per uploadare un file), nella richiesta serializzata si trova anche l'attributo "filename" con il percorso da cui è stato prelevato il file. Dall'esempio riportato sopra si nota che i file uploadati sono di pure testo (per semplicità), infatti il contenuto di questi file è ben visibile nella richiesta.
Il file "sendFile.txt" ha come contenuto:
Questa è una prova di invio
di file con upload.Mentre il file "sendFile2.txt" ha come contenuto:
Questa è la seconda prova di invio
di file con upload.Recuperare il contenuto
Quindi non rimane altro che recuperare il contenuto del file da questa stessa richiesta.
Per rendere tutto molto più object-oriented è opportuno salvare tutto in una collezione di oggetti.
Il modulo proposto è fatto da una classe clsInput che ha come membri:
- name (stringa: nome assegnato all'input)
- isFile(booleano: "true" se è un file)
- size(numerico: lunghezza del contenuto)
- fileName (stringa: nome del file uploadato, ad esempio "sendFile.txt"), filePath (stringa: percorso completo dal quale è stato uploadato il file)
- saveFile(): salva il file esattamete dove è in esecuzione lo script
- saveFileAs(destinationPath, newFileName): permette di specificare sia il percorso di destinazione (nel server) che un eventuale ed opzionale nome da assegnare al file.
Occore specificare che l'istruzione CLASS, utilizzata per definire la sudetta classe, è utilizzabile solo nella verione 5.0 di VBScript (quindi con IIS5 o IE 5.x o con un'installazione del motore di scripting VBScript 5.0)
3 pagine in totale: <<Indietro 1 [2] 3 Avanti >>
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
- Pagina 1
- Pagina 2
- Pagina 3
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Difficoltà
Stampa
Download



