Articoli Referenze Script FAQ Downloads ASP E-Commerce con ASP Menu Javascript Ricette Cocktail Registrazione domini Area Aziende



Forzare il download di un file con ASP ed ADO

Home + Articoli + File e Directory + Articolo # 102
Autore: Luca Ruggiero

Concesso in esclusiva a Mr.Webmaster. Vietata la riproduzione.


Spesso capita di mettere a disposizione dei propri utenti una serie di documenti non in formato HTML, ma ad esempio in formato MS Word, MS Excel, PDF o file immagine. uesti documenti finiscono per aprirsi nel browser dell'utente, dando vita a formattazioni improbabili e sovraccarico di lavoro per il browser che potrebbe impallarsi.

A porre rimedio pensa ADO (ActiveX Data Object) che, contrariamente alle credenze popolari, non serve solo all'interfaccia con i database, ma anche a trattare altri tipi di dati, come nel caso dell'interazione con i file con ADODB.Stream.

Il suo utilizzo è molto semplice e immediato: si dichiara un nuovo oggetto, si imposta il tipo, si carica il file desiderato, si impostano le normali intestazioni ASP e si distrugge l'oggetto.

Si crei il file download.asp che, privo di interfaccia, recupera in una querystring il file che si desidera scaricare e non visualizzare. Il codice è opportunamente commentato
<%@LANGUAGE = VBScript%>
<%
' Recupero il file da scaricare
Dim download, F
F = Request.QueryString("file")

' Creo l'oggetto ADODB.Stream
Set download = Server.CreateObject("ADODB.Stream")

' Apro la connessione e carico il file
download.Type = 1
download.Open
download.LoadFromFile Server.MapPath(F)

' Aggiungo le intestazioni del tipo di file
Response.AddHeader "Content-Disposition", "attachment; filename=" & F
Response.ContentType = "application/octet-stream"
Response.BinaryWrite download.Read

' Un po di pulizia...
download.Close
Set download = Nothing
%>
A questo punto, puntando a questo file, possiamo scaricare tutti i documenti che vogliamo scrivendo un link del tipo
<a href="download.asp?file=documento.doc">Documento Word</a>
© 2008 ASP Center di Luca Ruggiero - P. IVA 05564851219 - Disclaimer | Privacy | Pubblicità | Supportaci | Staff | Contatti
  Appunti PHP | Giornale Webmaster | Mr.Webmaster | Download | DevSpy.com | ASPCode.it | ClaudioGarau.it | Webmaster Facile | Come Faccio | AlVerde.net | CodiceFacile.it | I Programmatori | By Luciani | VoiceXML Italian User Group | Giochi | Extro Web Site | Morpheus Web | AG Web Solutions | Net-Free | PC Sicuro | PC Self | Tutorial Web | Dablones