PDA

Volledige versie bekijken : Q: URL achter een link verbergen


XA4
%Europe/Berlin %885 %2005, 21:15
Iedereen weet wel dat als je met je rechtermuisknop op een link klikt, je de doelbestemming kan zien. Als je dat bv hier (http://www.flashfocus.nl/forum/index.php?) doet, krijg je http://www.flashfocus.nl/forum/index.php? te zien.
Is er geen mogelijkheid om er voor te zorgen dat dit niet meer het geval is?
Een mogelijkheid zou zijn om die "hier" in een Flash-knop te steken en daarachter die link te plaatsen. Maar de doelbestanden zijn video-clips en dan kan je die wel bekijken, maar het is de bedoeling dat die worden gedownload. Ik zou wel met zips kunnen werken, maar dat houdt sommige mensen dan weer tegen om te downloaden...

Ik had zelf gedacht aan een of ander scriptje ofzo, maar ik heb er dus echt geen idee van.
De reden dat ik dit vraag is heel eenvoudig:
Ik heb een website met hosting. Maar zonder die video-clips overschrijd ik reeds het aantal GB's per maand (dit onder andere door veel foto's op de website + forum + flash-player) Die video-clips heb ik dus op een gratis webruimte gezet van mijn internet-provider, maar dat komt natuurlijk maar heel amateuristisch over... en die link (naar de video-clip op de gratis webruimte) zou ik dus willen "verbergen".

Graag een oplossing (indien die er is)
Alvast bedankt

Vincent van Kekerix
%Europe/Berlin %893 %2005, 21:26
Een beetje onduidelijk geformuleerd. ;)
Om een lang verhaal kort te maken; je wilt videobestanden dus dwingen om gedownload te worden i.p.v. geopend te worden in Windows Media Player? Zo ja, dan heb ik hier ergens een PHP-scriptje voor je liggen. Als je hier interesse in hebt moet je het even zeggen, dan zal ik het even hier posten. :)

XA4
%Europe/Berlin %902 %2005, 21:39
Ik heb inderdaad de slechte gewoonte om alles zo duidelijk te willen omschrijven... dat het onduidelijk wordt :)

Wat ik dus nodig heb, is een script dat verbergt waar een bepaald bestand op internet staat.
Bijvoorbeeld:
clip is hier te downloaden: download (en daar zit dan een link achter)
Dan mag je niet kunnen zien dat die clip eigenlijk niet op dezelfde server staat, maar op een andere/gratis server.

Van PHP ken ik bitterweinig. Ik heb wel een formulier werkend gekregen (en heb er eens check-boxen ingevoegd) maar verder heb ik me er nog niet mee bezig gehouden... wat ik eigenlijk echt eens zou moeten doen, want het lijkt me geweldig om dat te kunnen.
Als dit script kan doen wat ik vraag (en het liefst ook niet al te moeilijk is om in te voegen) dan hoor ik het uiteraard graag :D

Vincent van Kekerix
%Europe/Berlin %907 %2005, 21:47
Hieronder dus het PHP-bestand:

<?php
/************************************************** ************************************************** ****************
----------------- ------------
| Download-script | PHP-versie |
----------------- ------------

HANDLEIDING : Zet dit bestand in dezelfde map als te bestanden die per download beschikbaar gesteld
=========== moeten worden. Ieder bestand is aan te roepen op de volgende manier:

Bestand : afbeelding.gif
Te gebruiken link : download.php?bestand=afbeelding.gif

Bestand : animatie.swf
Te gebruiken link : download.php?bestand=animatie.swf

Wanneer u wilt dat sommige extensies, bijvoorbeeld PHP- of DAT-bestanden, niet beschikbaar zijn,
moet u de bestandsextensies hieronder invullen. De extensies moeten gescheiden worden door
een spatie. Bijvoorbeeld: U wilt niet dat DAT-, FLA- of PHP-bestanden downloadbaar zijn.
Dan moet het volgende ingevult worden:

"dat fla php"

Dit vult u achter de eerste variabele, 'hide' genaamd, in.
Standaard zijn DAT- en PHP-bestanden niet downloadbaar.

************************************************** ************************************************** ****************/

// Extensies die NIET downloadbaar mogen zijn.
$hide = "dat php"; // Extensies met een spatie tussen iedere waarde, voorbeeld: "dat fla php"

// Hieronder hoeft niets meer gewijzigd te worden.
$ext = explode(' ',$hide);

// Bestand oproepen
if(isset($_GET['bestand'])){
if(!strstr($_GET['bestand'], '..')){
$_file = explode('./',$_GET['bestand']);
$count = count($_file);
$file = "./".$_file[$count-1];
if(file_exists($file)){
$file_ext_point = strrpos ($file, '.');
$file_ext = substr($file,$file_ext_point+1);
if(!in_array($file_ext,$ext)){
header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".basename($file));
header("Content-Length: ".filesize($file));
@readfile($file);
}else{
echo "<strong>Foutmelding:</strong><br />De opgegeven bestandsextensie is niet toegankelijk.";
}
}else{
echo "<strong>Foutmelding:</strong><br />Het opgegeven bestand is niet gevonden.";
}
}else{
echo "<strong>Foutmelding:</strong><br />Het opgegeven bestand is niet toegankelijk.";
}
}else{
echo "<strong>Foutmelding:</strong><br />Er is geen bestand opgegeven.";
}


// Einde script
?>

Het is de bedoeling dat dit PHP-bestand in dezelfde map als de filmpjes gezet wordt. Als je een filmpje bijvoorbeeld 'film.avi' genoemt hebt, is het filmpje te downloaden via de link 'download.php?bestand=film.avi', zonder dat de eigenlijke locatie zichtbaar is.

Ik hoop dat dit is wat je graag wil hebben? :)
Zo niet, meld het maar even. :)

En reputatiepunten zijn welkom... :P

TrueChaoZ
%Europe/Berlin %908 %2005, 21:48
In feite is een link via een flash button niet echt makkelijk te traceren als deze dan ook buiten de browser geopent wordt/of opgeslagen wordt, maar dit ligt inderdaad aan de instellingen van gebruiker zelf. Misschien dat je iets kan doen met de in Flash8 geintroduceerde upload/download mechanismen (ik weet niet of dat downloaden ook forceert).

Vincent van Kekerix
%Europe/Berlin %909 %2005, 21:49
Eén ding is zeker; de download wordt met bovenstaand script in ieder geval geforceerd. :)

TrueChaoZ
%Europe/Berlin %913 %2005, 21:55
Alleen staat dat download script dan wel op de plek waar die filmpjes ook staan of begrijp ik dat verkeerd? (en dus is er alsnog een link naar die 'amateuristische' hosting nodig) Maar ik zou het anders inderdaad ook niet weten.

Vincent van Kekerix
%Europe/Berlin %918 %2005, 22:02
Dat is inderdaad ook weer zo...
Misschien dat het via een Flash-button gelinkt kan worden?
Dan heb je i.i.g. nog steeds het voordeel dat het een geforceerde download is.

Laiverd
%Europe/Berlin %922 %2005, 22:07
Ik kan me vergissen, maar volgens mij staat in de download progress dialoog ook altijd de lokatie van waar een bestand wordt gedownload en kun je daar niet omheen.

John

XA4
%Europe/Berlin %924 %2005, 22:11
Ik kan me vergissen, maar volgens mij staat in de download progress dialoog ook altijd de lokatie van waar een bestand wordt gedownload en kun je daar niet omheen.

John
dat is inderdaad waar (was ik trouwens vergeten) maar dat is toch minder opvallend dan wanneer je de hele URL te zien krijgt bij rechtermuisknop.

njuwdaij
%Europe/Berlin %617 %2005, 14:49
Kan ik de php ook gebruiken om bestanden (.pdf) te downloaden?

Het getURL werkt op een of andere manier niet tot nu toe, dus wil ik wat anders proberen. Wat zou er fout kunnen gaan bij zo'n simpele actionscript als getURL?
Ik heb de bestanden ook als .zip opgeslagen en geprobeerd aan te roepen met de getURL, maar dan gebeurd er ook niks.
Zou het aan de beveiliging van de server kunnen liggen?
Andere (interne) AS en links naar andere sites doen het wel.

TrueChaoZ
%Europe/Berlin %722 %2005, 17:19
wat is je code die je gebruikt voor de getURL?

njuwdaij
%Europe/Berlin %689 %2005, 16:32
on(release)
{
getURL("http://www.jelink.nl/nogwa/bestand.zip");
}

TrueChaoZ
%Europe/Berlin %408 %2005, 09:48
Ja dat zou toch gewoon moeten werken, het kan misschien dan inderdaad zijn dat de server zelf zips niet ondersteunt maar toch lijkt me dat sterk, maar anders zou ik het ook niet weten.