Una funzionalita' molto comune nei siti web e' quella di effettuare l'upload di file. Come riporta l'ampia documentazione Oracle vi sono diversi modi di farlo con il PL/SQL (eg. File Upload and Download in Oracle 9iAS 9.0.2.X and 10g AS - 281249.1) o con un servlet... Un semplice esempio in Perl che funziona con OAS e' il seguente: $ORACLE_HOME/Apache/Apache/htdocs/prova.htm
File to Upload:

Your Email Address:

$ORACLE_HOME/Apache/Apache/cgi-bin/prova.pl #!/usr/bin/perl -w use CGI; $upload_dir = "/oracle/mid10g/Apache/Apache/htdocs/upload"; $query = new CGI; $filename = $query->param("nomefile"); $email_address = $query->param("email_address"); $filename =~ s/.*[\/\\](.*)/$1/; $upload_filehandle = $query->upload("nomefile"); open UPLOADFILE, ">$upload_dir/$filename"; binmode UPLOADFILE; while ( <$upload_filehandle> ) { print UPLOADFILE; } close UPLOADFILE; print $query->header ( ); print < Upload successfull!

Your email address: $email_address

Your file:

END_HTML Ovviamente i nomi dei campi ed il contenuto sono solo esempi... il trasferimento di file non e' limitato ai file di immagine (anzi attenzione: non e' limitato affatto), manca il logging, la gestione degli errori, ... L'esempio piu' semplice come servlet (e' un JSP per l'esattezza) l'ho trovato su http://www.oop-reserch.com/mime_example_5.html <%! private static MimeParser mime=null; private static Set accept_mime=null; public void jspInit(){ try{ mime=MimeParser.getInstance(); accept_mime=AcceptMime.getAcceptMime(); } catch(Exception ex){ ex.printStackTrace(); } } %> <% mime.parseAndSave(request,"upfiles",accept_mime); %> In pratica e' un'istruzione!! Le altre poche righe sono dichiarazioni e l'inizializzazione. Per altro la gestione e' molto completa poiche' possono essere dichiarati nel file di properties il tipo di file, la dimensione, ...