Sull'altro THREAD metto un link che redireziona a questo post.
ho rivisto il codice, seguono istruzioni e info.
Provato, testato e funzionante.
NOTE - IMPORTANTI:
Con questo sistema riuscite a leggere i file (immagini, ecc...) situati in cartelle con permessi di lettura disabilitati!
Infatti togliendo dalla console IIS i permessi di lettura potete proteggere le immagini nel caso in cui qualche utente, facoltoso, riesca a risalire al percorso completo!
In questo modo tramite l'oggetto strem dell'activex ADO e i permessei di lettura disabilitati potete leggere ed inviare tutti i dati che volete, essendo sicuri che immagini e documenti all'interno di una data cartella sono protetti.
ricordate sia con il tag anchor<a></a> e <img> di usare la pagina download.asp
ISTRUZIONI:
questa è la pagina per visualizzare una foto e scaricarla:
codice:
<html>
<head>
<title>ADO.STREAM</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<div style="text-align: center;width: 400px;border: #AAAAAA 1px solid;padding: 10px 0px 10px 0px;">
<a href="download.asp?download=Scarpe.jpg">
[img]download.asp?download=Scarpe.jpg[/img]
<span style="text-align: center;display: block;">Clicca per scaricare il file</span></a>
<form action="download.asp" method="post" style="margin: 0px 0px 0px 0px; padding: 0px 0px 0px 0px;">
<input type="text" name="download">
<input type="submit" name="avvia" value="Clicca per scaricare il file">
</form>
</div>
</body>
</html>
questo è lo script STREAM, nominate la pagina "download.asp":
codice:
<%
response.buffer = True 'importante
IF len(request.querystring("DOWNLOAD")) > 0 THEN
call downloadForzato(request.querystring("DOWNLOAD"))
ELSE IF len(request.form("DOWNLOAD")) > 0 THEN
call downloadForzato(request.form("DOWNLOAD"))
ELSE
response.redirect("elenco.asp")
END IF
END IF
'**************** PROCEDURA PER L'invio del file al client **********
Sub downloadForzato(down)
DIM FType, objStream, percorso
'La cartella di esempio è nominata "cartellaImmagini"
'Il percorso virtuale assoluto
percorso = (server.MapPath("cartellaImmagini/" & down))
'Assegno il MIME TYPE
FType = LCase(right(down, 4))
SELECT CASE FType
CASE ".asf" : FType = "video/x-ms-asf"
CASE ".jpg", "jpeg" : FType = "image/jpg"
CASE ".pdf" : FType = "application/pdf"
CASE ELSE : FType = "application/octet-stream" 'Generico
END SELECT
Set objStream = Server.CreateObject ("ADODB.Stream")
objStream.type = adTypeBinary
objStream.Open
objStream.LoadfromFile (percorso)
Response.ContentType = FType
Response.AddHeader "Content-Disposition", "attachment; filename="& down
Response.AddHeader "Content-Length", objStream.Size
Response.Charset = "UTF-8"
Do While Not objStream.EOS
Response.BinaryWrite objStream.Read(1024)
Response.Flush
Loop
objStream.Close
Set objStream = Nothing
End Sub
%>
Fammi sapere ciao.