Hallo,

Ik heb een laravel project opgebouwd waarin onderandere bestanden kunnen worden gedownload.
Al mijn downloads staan in een bepaalde storage map.
Er is ook een tabel waarin al deze downloads opgelijst staan.
De route 'getdownload/{id}' zal in de tabel de download met id {id} zoeken, en van die download een regel in een log bestand plaatsen zodat ik later statistieken kan bekijken over hoeveel keer bepaalde bestanden zijn gedownload. Daarna wordt de download (altijd een PDF bestand) getoond in een nieuwe tab.

Het probleem is dat de ID van de download meestal als titel wordt getoond in de tab waarin het PDF bestand geopend wordt. Maar ik zou graag willen dat de titel van het bestand daarin getoond wordt.

Het vreemde is, dat bij sommige downloads wel degelijk de titel wordt getoond, en niet de ID.

De link naar de download heeft een target="_blank" zodat deze al zeker in een nieuw tabblad opent.

Dit is de code die ik gebruik om het bestand in een nieuw venster te openen:


public function getdownload($id){
        $download = Productdownload::findOrFail($id); //zoek download
        $ip = request()->ip(); // bezoekers IP
        DB::table('log_downloads')->insert([ // voeg toe aan log
            'download_id' => $download->id,
            'file' => $download->file,
            'ip' => $ip
        ]);
        $filename = $download->file; // zoek bestandsnaam
        $path = 'storage/downloads/'.$download->file; // bouw path
        return Response::make(file_get_contents($path), 200, [ // open PDF
            'Content-Type' => 'application/pdf',
            'Content-Disposition' => 'inline; filename="'.$filename.'"'
        ]);
    }


Hier is de ID getoond als titel


Hier is de bestandsnaam getoond als titel :: ZO MOET HET ALTIJD ZIJN


Kan iemand het verschil vinden?

Bedankt!
Mijn eerste ingeving zou zijn dat dit afhangt van de mogelijkheid of deze informatie uit de PDF (metadata) zelf gehaald kan worden of niet. Heb je deze twee PDF-bestanden al eens inhoudelijk geïnspecteerd op verschillen?

En anders zou je eens verder kunnen graven in de Response class of daar wat configureerbaar is. Maar ik kan mij zo voorstellen dat een PDF-plugin op een gegeven moment het (normale) werk van de browser overneemt.

Reageren