- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- inserire percorso pagine
-
inserire percorso pagine
ciao, ho questo script che serve a nascondere l'indirizzo dei documenti pdf sul mio sito per evitare che questi possano essere chiamati direttamente senza login una volta che il percorso è noto. lo script funziona bene finchè si tratta di specificare il percorso di un solo doc. ma avendone circa trenta da far visionare non so come fare ad inserirli, considerando il fatto che risiedono in tre cartelle differenti, qualcuno può spiegarmi come fare?
grazie
questo lo script:
<!--METADATA TYPE="typelib"
UUID="00000205-0000-0010-8000-00AA006D2EA4"
NAME="ADODB Type Library"-->
<%
Dim objStream
Set objStream = Server.CreateObject("ADODB.Stream")objStream.Type = adTypeBinary
objStream.Open
objStream.LoadFromFile Server.MapPath("banca/tax.pdf")
Response.ContentType = "application/pdf"
Response.BinaryWrite objStream.ReadobjStream.Close
Set objStream = Nothing
%>
-
Potresti fare semplicemente un select, mi spiego meglio:
chiami questo script passandogli una variabile che indentifica il documento in questo modo:
pagina.asp?documento=1 per il documento n.1
pagina.asp?documento=2 per il documento n.2e così via per ogni documento, poi all'interno della pagina aggiugi questo codice:
documento = cint(request("documento"))
Select case documento
case 1: percorso = "cartella1/tax.pdf"
case 2: percorso = "cartella1/azioni.pdf"
case 3: percorso = "cartella2/scambiolink.pdf"
End selectall'interno del tuo script dopo aver aggiunto questo codice subito dopo <% (il tag di apertura) devi sostituire solo una riga
Questa:
objStream.LoadFromFile Server.MapPath("banca/tax.pdf")diventa questa:
objStream.LoadFromFile Server.MapPath(percorso)Ok, se non fossi stato chiaro ti spiego a grandi linee cosa ho fatto, non faccio altro che passare al tuo script un file diverso a seconda del documento che il client ha scelto, il mio esempio si compone di 3 file nel select, ma tu puoi arrivare a quanti ne vuoi aggiungendo altre righe nel select esempio:
case 4: percorso = "cartella3/learnAsp.pdf"
per altre info sono qui a disposizione
-
ciao e grazie mille per la risposta, mi aiuti a comprendere meglio (avrai capito che sono un principiante)?
pagina.asp?documento=1 per il documento n.1
pagina.asp?documento=2 per il documento n.2in che punto dello script devo inserirlo?
e se ad es. identifico con 1 il doc. "tax.pdf" la variabile diventa:
"pagina.asp?documento=1" (?)
-
si effettivamente questa cosa non l'ho specificata a dovere.
Non vanno inserite nello script !
Esempio pratico, un utente entra nella tua area riservata e viene ridirezionato ad esempio su una pagina che chiameremo elenco.asp dove si trova davanti la lista dei documenti che può scaricare.
Se questo vuole scaricare il Tax.pdf devi mettere nella pagina elenco.asp il collegamento a pagina.asp?documento=1
e così via,
ovvero ogni odcumento che vuoi far scaricare deve avere un link a pagina.asp?documento=x dove x è il numero corrispondente del documento che setti nel selectCiao ANtonio
-
fatto! ma non funziona...mi da questo errore:
ADODB.Stream error '800a0bba'
File could not be opened.
/getdoc.asp, line 22
questo è il codice con gli inserimenti che mi hai suggerito:
<!--METADATA TYPE="typelib"
UUID="00000205-0000-0010-8000-00AA006D2EA4"
NAME="ADODB Type Library"-->
<%documento = cint(request("documento"))
Select case documento
case 1: percorso = "banca/tax.pdf"
case 2: percorso = "banche/guida.pdf"End select
Dim objStream
Set objStream = Server.CreateObject("ADODB.Stream")objStream.Type = adTypeBinary
objStream.Open
objStream.LoadFromFile Server.MapPath("percorso")
Response.ContentType = "application/pdf"
Response.BinaryWrite objStream.ReadobjStream.Close
Set objStream = Nothing%>
la linea incriminata è quella in rosso.dove sbaglio?
grazie per la pazienza.
-
Si è sbagliato, percorso è una variabile e non ha bisogno delle virgolette ai lati, le virgolette si usano quando usi stringhe di testo come costanti al posto delle variabili.
objStream.LoadFromFile Server.MapPath(percorso)
senza le virgolette ti funziona sicuro.
-
SEI GRANDE, funziona bene. non so proprio come ringraziarti spero di poter ricambiare in futuro.
ciao.
-
Di nulla figurati !