Gå til innhold

Ingen redirect ved lagre mål som


Anbefalte innlegg

Har et problem jeg ikke trodde det skulle være så vanskelig å løse, men har søkt en del rundt uten å finne svar.

 

Har en side som linker til mp3-filer på et annet domene. Det jeg vil skal skje er at når noen trykker på "last ned", blir brukeren først sendt til en php-side som oppdaterer databasen før den redirecter brukeren til mp3-filen. Dette skjer nå ved:

 

header("Location: http://www.annet.domene.no/fil.mp3");

 

Problemet er at når brukeren høyreklikker på "last ned" og velger "lagre mål som" er det bare den tomme php-siden som lastes ned. 

Endret av RadiantHeart
Lenke til kommentar
Videoannonse
Annonse

Sorry, formulerte meg sikkert litt dårlig. Oppsettet er omtrent slik:

 

index.php:

 

<a href="download.php?url=http://www.annet.domene.no/fil.mp3">Last ned fil</a>

 

download.php:

 

//Oppdatere database her

 

header("Location: http://www.annet.domene.no/fil.mp3");

 

Problemet jeg ville ha hjelp til var at når noen høyreklikker på linken i index.php og velger "lagre mål som" blir bare download.php lastet ned og ikke den eksterne mp3-fila.

Endret av RadiantHeart
Lenke til kommentar

Litt usikker her, vil du at de skal ha muligheten til å laste ned både ved å klikke på "last ned", OG ved å høyreklikke og velge "lagre mål som"?

 

Siden "last ned" linken linker til download.php så vil jo brukere selvfølgelig laste den ned hvis de klikker lagre mål. Er jo download.php som er målet. Og poenget med download.php var vel at databasen din skulle oppdatere seg, tviler sterkt på at du klarer å få til mulighet for å laste ned fil ved å bruke lagre mål som, og i tilegg oppdatere databasen. Ikke med bare php iallefall (TROR jeg da!).

Lenke til kommentar

Du må gjøre det slik at dem kan klikke på "last ned", så kommer nedlastingsdialogen opp.. - Med andre ord, får og få det til og fungere, må du gjøre nettleseren ukjent for filen slik at den heller vil laste den ned isteden for og spille den av.

 

Det finnes hvertfall et par poster om dette på forumet her, også har du jo google :)

 

EDIT: fant en post https://www.diskusjon.no/index.php?showtopic=601529&hl= Er rimelig lett stoff, kan du litt om PHP så forstår du det :)

Endret av Wackamole
Lenke til kommentar

Problemet her er nok at man har en redirect. Når man høyreklikker og velger «lagre mål som» lagrer man download.php som sannsynligvis er en tom fil fordi du ikke har skrevet ut noe og i stedet kjører en redirect. For at «lagre mål som» skal fungerer må innholdet du ønsker skal bli lastet ned bli gitt uten noen redirect.

Lenke til kommentar

Har testet litt forskjellige nettlesere (Opera, IE, Firefox og Chrome) og det viser seg at alle følger redirecten, til og med IE. Den eneste fremgangsmåten som gav en feil var når jeg valgte "lagre i nedlastingsmappe" i opera. Da ble riktig fil lastet ned, altså mp3-filen, men filnavnet ble download.php. Men det kan vel kanskje fikses ved å sende headers.

 

  

Lenke til kommentar

Du må passe på å sette content-type korrekt, samt det skal være en header som spesifiserer filnavn tror jeg. Husker ikke sånn i farta, men google "http headers" så får du sikkert en ok oversikt.

 

EDIT: Sorry, ser nå at du redirecter til fila... Har du prøvd å bare la downloadscriptet bitpushe fila rett til klienten istedet? Da slipper du at folk kan sniffe trafikken og få opp direkte url til filene dine også ;)

 

-C-

Endret av ChristianW
Lenke til kommentar
  • 4 uker senere...

En løsning kunne vært å ha URL ala dette:

example.com/downloads/fake/url/to/music

 

Neste steg er å benytte apache sin rewrite-rule, slik at url'en jeg anga blir "gjort om" til example.com/downloads/?data=fake-url-to-music

 

Dermed vil index.php-fila som ligger i "downloads"-mappen trigges (kjøres), og du får oppdatert databasen. Videre "echo'es" innholdet i "fake-url-to-path.mp3" ut (ikke redirect) av index.php-fila.

 

--

 

Et alternativ er å "lære opp" apache til å tolke .mp3-filer (og andre ønskede filtyper) som .php-filer. Med andre ord vil brukerne tro at de åpner en mp3-fil (pga. filnavn), mens i realiteten er "/fil.mp3" en helt vanlig php-fil. Igjen: Temmelig essensielt at php-fila spytter ut innholder fra en reell mp3-fil til browseren (med korrekt headers), hvis ikke blir browseren forvirra ;-)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...