pdf

HTML & CSS

11 svar · 324 visningar · startad av nordan

Medlem sedan juni 2000949 inlägg
Trådstart#1

Hej!
Om man vill lägga ut en pdf fil för nerladdning funkar det ju så att har man Acrobat Reader installerat i datorn så öppnas filen i webbläsaren om jag då vill göra så att det bara går att ladda ner den går detta att lösa på nått sätt?

Medlem sedan jan. 20011 154 inlägg
#2

Går inte att lösa med html. Du får ta till något scriptspråk så som asp eller php.
Har varit uppe tidigare ett par gånger.

Medlem sedan juni 2000949 inlägg
#3

Går det med Perl kanske??

Medlem sedan sep. 2001171 inlägg
#4

varför inte bara göra det enkelt och zippa PDF-filen?

Medlem sedan juni 2000949 inlägg
#5

Att zippa filen blir ju bara extra jobb för användaren.
Om Anv inte har Acrobat reader eller Winzip så blir det så att denne måste ladda hem båda dom programmen för att kunna läsa filen :q
Det tycker jag blir lite för mycket för att användare skall tycka att det är enkelt.
Det är struligt nog att behöva ladda hem ett program men ett måste i mitt fall då ;)

Medlem sedan juni 20004 308 inlägg
#6

Sökfunktionen ;) gav en träff på denna tidigare tråd.

Medlem sedan sep. 20001 124 inlägg
#7

Kom på en sak medans jag ru... *host* hällde upp kaffe. Om servern kör Apache så kan du göra lite trollerier med hjälp av en fil vid namn .htaccess. Definiera helt enkelt om typen på pdf-filer till den för ospecade binärfiler.

Medlem sedan juni 20008 205 inlägg
#8

... och content-typen för allmäna binärer är application/octet-stream. Om man bara vill att folk ska ladda ner (och inte läsa direkt) är det en helt OK metod.
Personlige skulle jag löst problemet så här:

Kolla in min <a href="cv.pdf">CV</a> (för att spara på hårddisken för framtida läsning, högerklicka och välj alternativet "Spara mål som...", "Save link document as..." eller något liknande).

Sen kan man förstås skriva CGI som löser det hela, men det är lite fjantigt tycker jag. Hsh, så här kan det se ut om man är pervers (vilket jag är) och skriver det hela i skalet Bash (funkar bara under Unix med Bash installerat, men Bash finns i princip överallt).

#! /bin/bash

# Katalog som sökvägen till dl.cgi ska utgå ifrån (punkt = den katalog
# scriptet ligger i, två punkter = katalogen över). Sökvägen kan vara
# relativ eller absolut.
DOWNLOAD_ROOT=../download-area

#
# Lite koll om någon försökt fula till sökvägen:
#

PATH_UP=`echo $PATH_INFO &#0124; grep '\.\.'`
PATH_HOME=`echo $PATH_INFO &#0124; grep '\~'`

#
# Plocka fram filnamnet
#

FILE_NAME=${PATH_INFO##*/}

if test -z "$PATH_UP$PATH_HOME"; then
        echo "Content-Type: application/octet-stream"
        echo "Content-Disposition: attachment; filename=$FILE_NAME"
        echo ""
        cat $DOWNLOAD_ROOT$PATH_INFO
else
        echo "Content-Type: text/plain"
        echo "Error: 666 stupid user error"
        echo ""
        echo "Kan (får) inte gå uppåt i kataloghierarkin."
fi;

Lägg in i en fil som heter dl.cgi och chmodda till 755.
Förslagsvis sätter du DOWNLOAD_ROOT att peka på någon speciell katalog med nedladdningsbara filer, för om du sätter den så att den pekar på www-roten kan elaka typer kolla in källan till cgi-script och liknande, vilket inte är vidare skoj. Om du la det här scriptet så att man kan komma åt det från dinserver/cgi-bin/dl.cgi så kan man besöka det med adressen dinserver/cgi-bin/dl.cgi/cv.pdf och då ladda ner filen som vanligen koms åt från dinserver/download-area/cv.pdf (att behandla ett cgi-script som en katalog är en liten finess i http som specificerar att man kan haka på en "extra sökväg" på adressen till en resurs utan att besökaren märker att man får dynamiskt innehåll).

Medlem sedan juni 20004 308 inlägg
#9

Chainsaw, du slutar verligen aldrig att förundra... ;) och jag syftar inte på .htaccess

Medlem sedan juni 2000949 inlägg
#10

Tackar för alla svaren :D
Det jag har gjort är att man måste fylla i ett formulär för att få tag i pdf filer som man kan ladda ner.
Allt detta har jag gjort i perl.
Frågan är då
Måste jag göra ett nytt script som själva filen som skall laddas ner ligger i eller går detta att lösa på annat sätt :q

Medlem sedan juni 20008 205 inlägg
#11

Tja, lite enkel programmeringsmetodik räcker:

  1. Verifiera användaren
  2. Ta reda på vilken fil personen i fråga vill åt (detta görs lämpligen samtidigt som punkt 1)
  3. Läs in den filen
  4. Spotta ut filen på stdout (med print, alltså)
Medlem sedan feb. 200112 078 inlägg
#12

röjsåg > :e :e :e

Vad tänker du på när du "häller upp kaffe" egentligen? :)

265 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)