document uit database tonen
Nadat er op een link geklikt is wordt er een javascript gestart dat als ingangsvariabele een id meekrijgt
Met dit id wordt in een ajax-aanroep het aplicatie type, de bestandsgrootte en inhoud van het document opgehaald.
Bij de .done van ajax wil ik het bestand tonen waarbij ik nu onderstaande code gebruik :
Code (php)
1
2
2
$soort = antw['soort'].split(':')[1];
$w = window.open('data:' + $soort + ',' + antw['omvang'] + ',' + antw['inhoud']);
$w = window.open('data:' + $soort + ',' + antw['omvang'] + ',' + antw['inhoud']);
Wanneer ik nu de link aanklik wordt MS-Word gestart, in het document staat de bestandsgrootte.
Ik heb nu uren zitten Googlen maar krijg het niet voor elkaar om de document inhoud te tonen.
Wie helpt mij dit laatste stapje te nemen ?
Gewijzigd op 03/03/2015 00:10:19 door Frank Nietbelangrijk
Het enige dat ik heb is een ID aan de hand waarvan ik de gegevens uit een database kan halen.
Wanneer het aan mij lag zou ik het bestand zelfs niet in de database zetten maar ik kan dit niet zelf beslissen.
Je zou met behulp van PHP dit bestand naar "output" kunnen sturen, voorzien van een of meer headers (Content-Type, Content-Length etc.), die het type bestand bevat.
inspiratie
Of ik moet je verkeerd begrijpen.
Ik heb het bestands-type en de bestandsgrootte in hetzelfde record staan in de database.
Geloof het of niet maar ik ben al minstens 8 uur aan het Googlen geweest om een oplossing te vinden voor dit probleem dus een link naar Google is in dit geval even niet de oplossing denk ik.
Ik geef er de voorkeur aan om dit soort problemen "gewoon" zelf op te lossen maar in dit geval loop ik gewoon vast.
Ik ga er nog eens even over nadenken hoe ik dit verder/anders aan kan pakken.
Code (php)
- opslaan en naast het php bestand een pdf plaatsen. Naam wijzigen in Original.pdf en php bestand oproepen vanuit de browser.
Voila
Gewijzigd op 03/03/2015 01:07:37 door Frank Nietbelangrijk
Om diezelfde reden wil ik dan ook geen GET variabele mee gaan geven met de aanroep van het PHP-bestand aangezien dit te gemakkelijk gemanipulerd kan worden.
Een andere optie zie ik nog om de ID in een session-variabele te zetten, ik zie alleen niet hoe ik deze in JS kan schrijven en vervolgens in PHP uit kan lezen
Quote:
De enige reden om dit document in de database te zetten is veiligheid
Gevoelige content kun je prima in een "prive" content dir zetten buiten je webroot. Je serveert deze bestanden via een PHP-scriptje, en de administratieve informatie hiervan kun je in een database kwijt (locatie, naam, (mime)type).
Quote:
Om diezelfde reden wil ik dan ook geen GET variabele mee gaan geven met de aanroep van het PHP-bestand aangezien dit te gemakkelijk gemanipulerd kan worden.
En als je je bestanden toch via een PHP-script serveert, kun je het opvragen van een bestand ook onderwerpen aan controles zoals toegangsrechten of -rollen.
Gewijzigd op 03/03/2015 12:09:27 door Thomas van den Heuvel
Database tabel aanmaken met
-id
-filename
-filetype
-roles ( Welke rol moet een gebruiker hebben om het te kunnen downloaden )
en dan kun je de pagina als hierboven aanroepen met download.php?id=2
Waarmee je dan het bestand met id 2 gaat downloaden ALS je ingelogd bent EN de juiste rol (of machtingen) hebt.
een GET var is dus prima om aan te geven welk bestand je wilt downloaden.