PDF uit db wordt niet correct gedownload

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Creatieve Front-end developer gezocht!

Functie Het front-end team bestaat momenteel uit 4 collega’s en is hard aan het groeien! Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren. Je werkt in het front-end team samen met de back-end teams en product owners om te zorgen dat de applicaties een fijne gebruikerservaring opleveren. Jouw expertise zorgt ervoor dat de juiste keuzes gemaakt worden qua techniek en ontwerp, van back-end tot aan gebruiker. In samenspraak met je team bepalen jullie de beste keuze voor techniek. Ook is er altijd ruimte om nieuwe technieken te ontdekken. Eisen • Je hebt gedegen

Bekijk vacature »

Robot Programmeur

Een verantwoordelijke baan met leuke uitdagingen. Heb jij ervaring met het programmeren van robots? Kan jij goed samenwerken met collega's die verschillende specialisaties hebben? Ben je oplossingsgericht, analytisch en flexibel? Ga dan aan de slag als Robot Programmeur bij Gibas in Nijkerk! Als Robot Programmeur kom je te werken bij Gibas. Dat betekent dat je gegarandeerd meewerkt aan unieke oplossingen in productieprocessen. Bij elk project moet er opnieuw geëngineerd en geprogrammeerd worden. Dat maakt jouw werk uitdagend! Voordat je robots gaat programmeren komt er het volgende bij kijken: De opdracht gaat van de afdeling Sales naar de afdeling Operations door

Bekijk vacature »

Software Developer

Functie omschrijving Heb jij affiniteit met ICT en een WO diploma in de pocket? Dan ben je hier aan het juiste adres. Voor een opdrachtgever in Amsterdam zijn wij op zoek naar kandidaten die (enige) ervaring hebben met Java, Javascript, C of C++. Je zal door middel van trainingen worden opgeleid tot een volwaardige Software Developer. Er wordt tijdens de training natuurlijk veel aandacht besteedt aan de vaktechnische aspecten, maar er gaat ook veel aandacht uit naar jouw persoonlijke ontwikkeling. Bedrijfsprofiel Bij deze opdrachtgever in de omgeving van Amsterdam zoeken ze meerdere enthousiaste kandidaten die hun carrière willen starten met

Bekijk vacature »

Fullstack JavaScript developer (ReactJS, NodeJS, T

Functie Het team bestaat momenteel uit ruim 15 collega’s, waarvan ruim de helft in het ontwikkelteam werkzaam is. Er zijn gave plannen om het platform ook te gaan toepassen op bijv. vliegvelden, maar ook internationale groei zit in het verschiet en daarom zijn ze op zoek naar versterking. Als Fullstack JavaScript developer werk je nauw samen met 9 fullstack (Python en .NET) developers. Binnen het team ga jij je toespitsen op het creeren van de optimale toegankelijkheid en user experience. Om dit voor elkaar te krijgen zul je ontwerpen, programmeren, testen en implementeren. Het hele proces dus! Maar ook bijvoorbeeld

Bekijk vacature »

Software Programmeur PHP

Functie Ben jij op zoek naar een nieuwe uitdaging als PHP developer en zoek je een leuke platte organisatie? Lees dan snel verder! Voor een opdrachtgever in omgeving Capelle aan den IJssel dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen PHP, JAVA en Node.js. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn

Bekijk vacature »

Software Ontwikkelaar C# .NET

Functie omschrijving Startende Software Ontwikkelaar gezocht met kennis van C# .NET! Ben jij net klaar met je opleiding en ben je op zoek naar je eerste echte werkervaring? Of heb jij al enige werkervaring maar ben toe aan iets nieuws? Dan is dit de perfecte kans voor jou! Wij zoeken namelijk een Junior Software Ontwikkelaar die klaar is voor een nieuwe uitdaging bij een leuke werkgeven in de regio Zeist. In deze functie werk jij vaak aan verschillende projecten en ga je bij klanten op bezoek. Ben jij op zoek naar een functie met uitdaging, diversiteit en verantwoordelijkheid? Dan is

Bekijk vacature »

Als Front-end developer werken aan apps voor het o

Functie Als Front-end developer werk je intensief samen met 1 van de UX-designers en denk je mee over de gebruiksvriendelijkheid en design van onze web- en mobile apps. Je bent betrokken bij sessies met gebruikers om designs te valideren en usability van de app-in-wording te testen. Vervolgens gebruik je dit om samen met je team waarin ook back-end (.NET) developers zitten, te zorgen voor de realisatie van de best mogelijke apps voor studenten en docenten. Eisen • Je hebt een hands-on development en coding mind-set en werkt graag aan een high quality code base welke je consequent onderhouden kan worden

Bekijk vacature »

Junior Software Developer (HBO / WO)

Functie omschrijving Voor een leuke opdrachtgever zijn wij op zoek naar een Junior Software Developer! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Dan hebben wij bij Jelling IT Professionals de perfecte opdrachtgever in de omgeving van Hoofddorp. Binnen deze functie vervul je een onsite learning programma waarbij je aan de slag gaat met PHP en Laravel. Hierbij ben je voornamelijk werkzaam op verschillende klantlocaties en is het jouw taak om hun wensen en eisen

Bekijk vacature »

Node.js developer looking for a challenging consul

Functie Under the guidance of 3 account managers, one of whom will be your point of contact within your expertise, you will start working for various clients. He or she will help you find a suitable and challenging assignment. Naturally, they will take your situation, experience and (technical) ambitions into account. The assignments last one to two years on average. This allows you to really commit to a project and make an impact as a consultant. Besides the assignment, you will regularly meet your colleagues from the IT department to share knowledge or discuss new trends, for example. Master classes

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Senior Software developer PHP

Functie Jij als senior PHP ontwikkelaar komt te werken in 1 van onze SCRUM teams. Momenteel werken er zo’n 30 developers binnen onze organisatie Jij gaat de brug zijn tussen het bouwen van verschillende functionaliteiten binnen onze applicaties en deze vervolgens te integreren in onze centrale hub. Je start je dag om 9 uur met een stand up en dan pak je je taken op voor de dag. Een greep van jouw taken zijn: – Het bedenken en uitbouwen van features binnen de verschillende applicaties – Onderhouden van CI/CD pipelines – Bezighouden met Security & Privacy Eisen • Minimaal 4

Bekijk vacature »

IT Infrastructuur Developer

IT Infrastructuur Developer Ben jij (bijna) klaar met je HBO studie in de richting van IT? Opzoek naar een spannende eerste baan, waar je ontzettend veel kan leren? Dan hebben wij de ultieme job voor jou! Voor een goede klant van ons in de financiële dienstverlening zijn wij opzoek naar een Junior Infrastructure Developer. Deze baan is een mooie kans om een sterke start te geven aan jouw carrière binnen de IT! De job Je werkt nauw samen met het Devops team, en zal je voornamelijk bezighouden met het automatiseren van infrastructure componenten. De componenten worden opgevraagd door het DevOps

Bekijk vacature »

Software developer (PHP) - Utrecht centrum

Functie Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten. Het team bestaat uit 4 developers, een klein team dus met korte lijnen. Alles in intern ontwikkeld en je werkt aan alle facetten. Van uitbreiding van de core tot maatwerk voor de klant. Ook liggen er verschillende uitdagingen op servervlak en databases. Je zult de eerste periode veel samenwerken met de lead developer om vervolgens echt je gang te gaan binnen de software. In het team streven ze naast de hoogst haalbare kwaliteit. Hiervoor werken ze nauw met elkaar samen en levert

Bekijk vacature »

Delphi Programmeur

Functie omschrijving Onze opdrachtgever is gespecialiseerd in kantoor-bedrijfssoftware en zit gevestigd in omgeving Numansdorp. Als programmeur ben jij bij dit bedrijf met het volgende bezig; Je vertaalt technische en functionele ontwerpen naar kwalitatieve software. Je ontwikkelt, ontwerpt en test software. Je maakt daarbij veel gebruik met de volgende tools & technologieën: Delphi 10.3 (Rio), QuickReport 6. Je krijgt in deze rol veel vrijheid en verantwoordelijkheid. Je levert projecten van A - Z op, en werkt daarbij projectmatig en gestructureerd. Bedrijfsprofiel Dit bedrijf richt zich op maatwerk software oplossingen. Deze software oplossingen worden ingezet in de financiële branche. Het betreft een

Bekijk vacature »

Junior Software Developer C# Verhuursector Verhuur

Samengevat: Wij ontwikkelen en leveren softwaresystemen voor de logistieke sector en de verhuursector. Ben jij geschikt als Junior Software Developer? Heb je ervaring met Delphi? Vaste baan: C# Software Developer Logistiek HBO €2.500 - €3.900 Deze werkgever is een software ontwikkelaar, gericht op software voor de logistieke sector. Deze werkgever heeft eigen producten ontwikkelen en leveren ook maatwerk. Ons bedrijf kent een boeiende en inspirerende werkomgeving met een open cultuur en mogelijkheden voor je verdere ontwikkeling. Bij bij hun werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als het gaat om

Bekijk vacature »
Marco

Marco

05/10/2009 16:21:00
Quote Anchor link
Met een upload script wordt een pdf bestand in een mysql database toegevoegd. Dit werkt prima. Echter wil ik met onderstaand script de gebruiker het pdf bestand laten downloaden. Opzich werkt alles, behalve het feit dat het bestand niet door Adobe wordt gelezen. Er wordt aangegeven dat het bestand 'damaged' is. Hoe is dit op te lossen?

s.schoolkrant in de query is het PDF bestand in de database.

Enige hulp zou erg welkom zijn. b.v.d.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
    foreach($schoolkrant as $row) {?>

        
        <h2><?php echo $row['titel']; ?></h2>
        
        <p><a href="?schoolkrant_id=<?php echo $row['schoolkrant_id']; ?>" title="Download deze schoolkrant editie"><img src="<?php echo ADMIN_PATH; ?>schoolkrant/showthumbs.php?image_id=<?php echo $row['image_id']; ?>" alt="<?php echo $row['image_name']; ?>" width="<?php echo $row['thumb_width']; ?>px" height="<?php echo $row['thumb_height']; ?>px" /></a></p>
        
        <?php //echo $row['info']; // $row['info'] is al opgemaakt als paragraph style (<p>) d.m.v. wysiwyg-editor ?>
    <?php
    }
    
    try {

        $db = new PDO('mysql:host=localhost;dbname=xxx', 'xxx', 'xxx');
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
        if(isset($_GET['schoolkrant_id'])) {
        
            $db->beginTransaction();
    
            $schoolkrant_id = $_GET['schoolkrant_id'];
            
            $stmt = $db->prepare("
                SELECT
                    s.schoolkrant_id, s.titel, s.naam, s.type, s.size, s.datum, s.schoolkrant, s.info
                FROM
                    schoolkrant s
                WHERE
                    schoolkrant_id = :schoolkrant_id    
            "
);
            
            $stmt->bindParam(':schoolkrant_id', $schoolkrant_id, PDO::PARAM_INT);
            
            $stmt->execute();
            
            $db->commit();
            
            $array = $stmt->fetchAll();
            
            foreach($array as $row) {
            
                header("Content-Description: Schoolkrant download");
                header("Content-Disposition: attachment; filename=".basename($row['naam']));
                header("Content-Transfer-Encoding: binary");
                header("Expires: 0");
                header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
                header("Content-Length:".$row['size']);
                header("Content-Type:".$row['type']);
                header("Pragma: public");
                
                ob_clean();
                flush();
                readfile($row['schoolkrant']);
                exit();
            
            }
            
        }
        
    }

    
    # catch errors
    catch(PDOException $e) {
    
        if(isset($db)) {
            $db->rollBack();
        }

        
        echo '<pre>';
        echo 'Regelnummer: '.$e->getLine().'<br />';
        echo 'Bestand: '.$e->getFile().'<br />';
        echo 'Foutmelding: '.$e->getMessage().'<br />';
        echo '</pre>';
        
    }

    ?>
Gewijzigd op 01/01/1970 01:00:00 door Marco
 
PHP hulp

PHP hulp

02/05/2024 04:44:23
 
Michael -

Michael -

05/10/2009 16:29:00
Quote Anchor link
Zou je alle code even tussen en willen zetten?
Dan is 't beter leesbaar.
Edit: Waarom open en sluit je php steeds? Je kan ook gewoon je html erin zetten hoor.
Gewijzigd op 01/01/1970 01:00:00 door Michael -
 
Marco

Marco

05/10/2009 17:28:00
Quote Anchor link
Done.

Ja klopt maar deze manier hanteer ik meestal en dan houd ik het liever consistent :)
 
Hipska BE

Hipska BE

05/10/2009 18:18:00
Quote Anchor link
lijn 2 t.e.m. 10 horen er niet uitgevoerd te worden. Deze komen nu ook in je pdf bestand en maakt het dus kapot..

Dit had je al gemerkt wanneer je niet met ob_start(); gewerkt had. (hier ga ik van uit a.d.h.v. lijn 51)

Als je die pdf nu eens zou openen met kladblok of een andere tekst editor zou je dit al gemerkt hebben..
 
Marco

Marco

05/10/2009 22:17:00
Quote Anchor link
@Hipska
Nu heb ik de opmaak en php van elkaar gescheiden maar nog krijg ik het niet voor elkaar om er een pdf van te maken. Sterker nog met de huidige code haal ik een pdf op van 0 kb waar niks in staat.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<div class="block news">
    <h1>Schoolkranten</h1>
    
    <?php
    foreach($schoolkrant as $row) {?>

        
        <h2><?php echo $row['titel']; ?></h2>
        
        <p><a href="<?php echo LIB_PATH; ?>schoolkrant/schoolkrant.php?schoolkrant_id=<?php echo $row['schoolkrant_id']; ?>" title="Download deze schoolkrant editie"><img src="<?php echo ADMIN_PATH; ?>schoolkrant/showthumbs.php?image_id=<?php echo $row['image_id']; ?>" alt="<?php echo $row['image_name']; ?>" width="<?php echo $row['thumb_width']; ?>px" height="<?php echo $row['thumb_height']; ?>px" /></a></p>
        
        <?php //echo $row['info']; // $row['info'] is al opgemaakt als een paragraph style (<p>) d.m.v. wysiwyg-editor ?>
    <?php
    }
    ?>

</div>


schoolkrant.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
try {

    $db = new PDO('mysql:host=localhost;dbname=xxx', 'xxx', 'xxx');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    if(isset($_GET['schoolkrant_id'])) {
    
        $db->beginTransaction();

        $schoolkrant_id = $_GET['schoolkrant_id'];
        
        $stmt = $db->prepare("
            SELECT
                s.schoolkrant_id, s.titel, s.naam, s.type, s.size, s.datum, s.schoolkrant, s.info
            FROM
                schoolkrant s
            WHERE
                schoolkrant_id = :schoolkrant_id    
        "
);
        
        $stmt->bindParam(':schoolkrant_id', $schoolkrant_id, PDO::PARAM_INT);
        
        $stmt->execute();
        
        $db->commit();
        
        $array = $stmt->fetchAll();
        
        foreach($array as $row) {
        
            header("Content-Description: Schoolkrant download");
            header("Content-Disposition: attachment; filename=".basename($row['naam']));
            header("Content-Transfer-Encoding: binary");
            header("Expires: 0");
            header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
            header("Content-Length:".$row['size']);
            header("Content-Type:".$row['type']);
            header("Pragma: public");
            
            readfile($row['schoolkrant']);
        
        }
        
    }
    
}


# catch errors
catch(PDOException $e) {

    if(isset($db)) {
        $db->rollBack();
    }

    
    echo '<pre>';
    echo 'Regelnummer: '.$e->getLine().'<br />';
    echo 'Bestand: '.$e->getFile().'<br />';
    echo 'Foutmelding: '.$e->getMessage().'<br />';
    echo '</pre>';
    
}

?>
 
Hipska BE

Hipska BE

05/10/2009 23:20:00
Quote Anchor link
Offtopic: Waarom doe je dit in een transaction? Waarom doe je $stmt->fetchAll? Hoeveel ben je er wel van plan om op te halen?

verder kan je eens var_dump van die $array doen om te zien wat je uberhaut vanuit de DB terug krijgt..
 
Marco

Marco

06/10/2009 20:03:00
Quote Anchor link
@Hipska

Klopt ik had het script even gekopieerd van een bestand waarin ik wel meerdere queries gebruikte en ben vergeten de transactie en commit weg te halen. En je hebt inderdaad gelijk wat betreft fetchAll, dat is niet echt nodig hier. Ik haal nu alleens de s.schoolkrant (blob) op maak gebruik van fetchColumn.

Met de 'var_dump' krijg ik een string terug met de inhoud van het PDF bestand alleen dan in de meest uiteenlopende tekens :)

Kortom ik ben nog niet veel verder. Iemand een suggestie of ervaringen hoe het wel goed te downloaden is? B.v.d.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.