afbeeldingen downloaden werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C# .NET Developer

Dit ga je doen Ontwikkelen van de Back-end in .NET6 / C# en WebAPI (Focus);) Ontwikkelen van de Front-End in Nodje.js en Angular (secundair); Ontwikkelen in Blazor; Opstellen van een technisch ontwerp; Testen, documenteren en implementeren van de nieuwe applicatie; Verzorgen van de nazorg, na de implementatie. Hier ga je werken Binnen deze organisatie werken duizenden mensen binnen allerlei verschillende disciplines. Tevens hebben zij veel specialiteiten in huis, waaronder ook .Net Developers. Ter uitbreiding van een nieuw team en ter ondersteuning van het project zijn ze opzoek naar een nieuwe collega voor het team. Als C#.NET Developer zal jij je

Bekijk vacature »

Softwareontwikkelaar Cleopatra

Functieomschrijving Voor de gemeente Amsterdam zijn wij op zoek naar een softwareontwikkelaar Cleopatra. De directie Verkeer en Openbare ruimte van de gemeente Amsterdam beschikt over een softwareapplicatie, "Cleopatra", waarmee geautomatiseerde handhaving plaatsvindt (op basis van kentekenherkenning) van bepaalde gebieden waarin toegangseisen worden gesteld aan het verkeer. Voorbeelden ervan zijn de milieuzones, de zone zwaar verkeer, handhaving van brom- en snorfietser op het fietspad en autoluwe gebieden. Voor de doorontwikkeling en uitbreiding ervan zijn gespecialiseerde softwareontwikkelaars nodig die helpen bij het programmeren van de handhavingsmodules voor nieuwe gebieden en het verbeteren en bijwerken van de bestaande onderdelen van de softwareapplicatie. Functie

Bekijk vacature »

Medior C# Developer

You'll build modern applications for Coolblue's back office. We have a lot of friends, and they crave well-structured data and user-friendly, task-focused applications. How do I become a Medior C# Developer at Coolblue? You regularly participate in brainstorm sessions about user experience, data, and task flow with the UX Designer, Product Owner, and Data Scientists in your team. Besides that you will create disconnected, highly congruent, and testable code that can easily be maintained and is future-proof. Want to become C# Developer at Coolblue? Read below if the job suits you. You enjoy doing this Working with various types of

Bekijk vacature »

Senior Developer ERP Dynamics 365

Samengevat: Deze werkgever is een softwarebedrijf. Ben jij een enthousiaste developer? Heb je ervaring met ERP of Dynamic 365 bussines central? Vaste baan: ERP Applicatie Specialist ERP MBO €3.600 - €5.200 Wij houden ons als bedrijf bezig met het leveren en implementeren van het Microsoft Dynamics pakket binnen verschillende industriële sectoren. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Binnen ons open team is er een no-nonsense cultuur. Daarnaast is er veel onderling contact door de korte communicatielijnen. Het team werkt enthousiast samen om een

Bekijk vacature »

Developer (One Data)

Do you have experience with managing IT Teams in a service delivery organization? Are you keen to bring the team and our platform to a higher level? Then Nutreco has a very interesting role for you! As a One Data developer you are responsible for the management, running and functional use of our integration landscape and processes within Nutreco. Nutreco is using at this time BizTalk 2016, and Apigee for its API management, to be replaced by Azure Integration Services as of 2023. You will be part of a virtual teams of 11 people (own and outsourced) working in an

Bekijk vacature »

Ervaren Magento developer gezocht!

Functie Je komt te werken in een zelfsturend team waarin vertrouwen voorop staat en inbreng en ideeën worden gewaardeerd. Ook staat innovatie centraal. Ze bieden jou de mogelijkheid om jezelf door te ontwikkelen. Denk hierbij aan cursussen en een persoonlijk ontwikkelplan. Je komt terecht in het team van momenteel 4 (ervaren) collega’s en zal meewerken aan de doorontwikkeling en nieuwbouw van de Magento platformen van meerdere opdrachtgevers volgens Agile/Scrum. Denk hierbij aan nieuwe functionaliteiten, UX en koppelingen met verschillende back-end systemen. Als ervaren developer zul je hiernaast ook andere developers assisteren en waar nodig de leiding nemen in het project.

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Full Stack Software Ontwikkelaar gezocht! Voor een bedrijf in de regio van Ermelo zijn wij op zoek naar een Software Ontwikkelaar die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van SaaS applicatie van dit bedrijf. Hierbij ga jij voor- en samenwerken met de klanten van de organisatie, het is hierbij dus van groot belang dat je communicatief vaardig bent en dat je beschikt over beheersing van zowel de Nederlandse als Engelse taal. Bedrijfsprofiel Waar ga je werken? Altijd al in een echt familiebedrijf willen werken? Dan is dit je kans! Het bedrijf waar je komt te

Bekijk vacature »

Back End Developer .NET

Dit ga je doen Ontwikkelen in C# .NET en werken aan nieuwbouw, uitbouw en onderhoud van de software (die communiceren met 68.000 sensoren, waardoor er meerdere miljoenen berichten per uur verwerkt worden); Samenwerken in Scrum Teams; Meewerken aan verschillende, uitdagende projecten; Werken met nieuwe technologieën en vrijheid krijgen om jezelf te ontwikkelen en door te groeien. Hier ga je werken Je komt als Developer te werken bij een organisatie die gespecialiseerd is in software die real-time wordt gebruikt. De software constateert waar werk moet worden uitgevoerd en de chauffeurs worden met een andere applicatie hierop geattendeerd. Ook wordt er direct

Bekijk vacature »

Gezocht: Ervaren VB6 developer met C# ambitie!

Bedrijfsomschrijving Dit bedrijf is een vooraanstaande softwareleverancier die gespecialiseerd is in het ontwikkelen van software pakketten voor autoschade herstel bedrijven. De software wordt gebruikt door meer dan de helft van alle autoschade herstel bedrijven in Nederland. Het team van professionals is op zoek naar getalenteerde collega developers die hun vaardigheden willen inzetten om het bedrijf te laten groeien. Functieomschrijving Voor dit bedrijf zoek ik een ervaren VB6 / VB.NET developer met interesse om op termijn verder te gaan in C#. In deze functie ben je verantwoordelijk voor het onderhouden van de bestaande softwarepakketten. Een deel van de code is nog

Bekijk vacature »

Front-End Developer

As a Front-End Developer at Coolblue you improve the user-friendliness of our webshop for millions of customers. How do I become a Front-End Developer at Coolblue? As a Front-End Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the UX Designer to pick up stories. You get energy from coming up with creative solutions and are happy to present these within the team. You also take pride in your work and welcome any feedback. Would you like to become a Front-End Developer at Coolblue? Read below if the job suits you. You

Bekijk vacature »

Software developer (Python)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en houden ze zo nu en dan pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Je hebt in je werk oog voor kwaliteit, risico’s en het klantbelang. Communicatie met

Bekijk vacature »

Java Developer

Dit ga je doen Ontwerpen en bouwen van nieuwe functionaliteiten binnen de complexe omgeving; Proactief de processen kwalitatief en efficient inrichten; Opzetten van Unit Tests; Code Reviews; Regie nemen voor innovatieve projecten; Landschap beheren en de bijbehorende ketens hierbij in het oog houden. Hier ga je werken De organisatie is actief binnen de financiele branche en heeft een IT afdeling van circa 450 man. De organisatie voorziet de maatschappij binnen de financiele dienstverlening en is gedurende de jaren een onmisbare schakel geworden. Het is een high profile organisatie waar ze veel te maken hebben met veranderingen voortkomend uit maatschappelijke ontwikkelingen,

Bekijk vacature »

.Net ontwikkelaar - Het schoolsysteem verbeteren!

Bedrijfsomschrijving Onze klant is een prettige en kleinschalige organisatie waar hard gewerkt wordt om het onderwijs te verbeteren. Daarom werken ze aan complexe om administratieve, financiële en facilitaire processen te versnellen en te verbeteren. Dit doen ze vanuit een platte organisatie voor klanten die door geheel Nederland verspreid zitten, hier horen vanzelfsprekend een aantal aansprekende HBO scholen en universiteiten toe. Functieomschrijving Je komt terecht in een organisatie waar op dit moment 2 scrumteams werken. Jij zal als .Net developer binnen 1 van deze scrumteams functioneren, iedereen binnen dit team heeft zijn/haar eigen expertise waardoor er met verschillende invalshoeken aan een

Bekijk vacature »

Fullstack JavaScript Developer Webapplicaties

Bedrijfsomschrijving Voor deze organisatie ben ik op zoek naar een getalenteerde Fullstack JavaScript Developer. Ze is een snelgroeiend software development agency dat zich richt op het ontwikkelen van moderne webapplicaties en complexe systemen voor haar klanten. Ze is gevestigd onder de rook van Utrecht en heeft als doel om tot de top van de Nederlandse agencies te behoren. Deze organisatie maakt softwareoplossingen voor verschillende soorten bedrijven. Innovatie staat hoog in het vaandel en je zult dus met nieuwe technieken aan de slag gaan. Ze hebben klanten in vele branches zitten, zoals retail, finance, gezondheid en onderwijs. De diverse klanten zorgen

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 »
Marco Eilander

Marco Eilander

28/05/2016 12:35:06
Quote Anchor link
Hallo,


Met dit script probeer ik afbeeldingen te downloaden, maar als ik ze open, krijg ik een foutmelding en worden ze niet weergegeven. Ik krijg alleen de melding "Dit bestand kan niet worden geopend.".

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
        header ('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header ('Content-Description: File Transfer');
        header ('Content-Type: application/octet-stream');
        header ('Content-Length: ' . filesize(__DIR__ .'/opslag/'.$_GET['bestand']));
    header('Content-Type: image/png');        
    header("Content-Disposition: attachment; filename=".$_GET['bestand']."");

?>
 
PHP hulp

PHP hulp

13/01/2025 07:18:05
 
Ben van Velzen

Ben van Velzen

28/05/2016 13:23:41
Quote Anchor link
Waar is de inhoud van je bestand? Heb je dat voor het voorbeeld weggelaten of ben je het gewoon vergeten?
 
Marco Eilander

Marco Eilander

28/05/2016 14:13:07
Quote Anchor link
Ben van Velzen op 28/05/2016 13:23:41:
Waar is de inhoud van je bestand? Heb je dat voor het voorbeeld weggelaten of ben je het gewoon vergeten?


Dan is dat dus het probleem. :P
Hoe krijg ik de inhoud?
 
Ben van Velzen

Ben van Velzen

28/05/2016 14:18:22
Quote Anchor link
Voeg dit eens toe:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
fpassthru(__DIR__ . '/opslag/' . $_GET['bestand']);
?>


Het is overigens aan te bevelen om niet direct op de inhoud van $_GET['bestand'] te vertrouwen, het is in deze opzet een koud kunstje om ieder gewenst bestand op je systeem op te vragen. Bijvoorbeeld de inhoud van index.php, welke weer verwijst naar configuraties e.d.
 
Marco Eilander

Marco Eilander

28/05/2016 21:11:02
Quote Anchor link
Ben van Velzen op 28/05/2016 14:18:22:
Voeg dit eens toe:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
fpassthru(__DIR__ . '/opslag/' . $_GET['bestand']);
?>


Het is overigens aan te bevelen om niet direct op de inhoud van $_GET['bestand'] te vertrouwen, het is in deze opzet een koud kunstje om ieder gewenst bestand op je systeem op te vragen. Bijvoorbeeld de inhoud van index.php, welke weer verwijst naar configuraties e.d.


Helaas. Inhoud blijft leeg.
 
Ben van Velzen

Ben van Velzen

28/05/2016 21:13:37
Quote Anchor link
zet je error reporting eens aan en haal de headers weg, wat krijg je dan?
 
Marco Eilander

Marco Eilander

28/05/2016 22:58:08
Quote Anchor link
Ben van Velzen op 28/05/2016 21:13:37:
zet je error reporting eens aan en haal de headers weg, wat krijg je dan?


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Warning: fpassthru() expects parameter 1 to be resource, string given in /home/blablabla/domains/mijndomein.nl/public_html/upload/download.php on line 4


Ik neem aan, dat het gaat om dit stukje : '/opslag/'
Gewijzigd op 28/05/2016 23:05:21 door Marco Eilander
 
Joakim Broden

Joakim Broden

29/05/2016 12:10:29
Quote Anchor link
Marco Eilander op 28/05/2016 12:35:06:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Length: ' . filesize(__DIR__ .'/opslag/'.$_GET['bestand']));
    header('Content-Type: image/png');        
    header("Content-Disposition: attachment; filename=".$_GET['bestand']."");
?>


Bij de header 'Content-Length' zit het bestand in de map 'opslag'. Bij de header 'Content-Disposition' niet.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    header("Content-Disposition: attachment; filename=".__DIR__ ."/opslag/".$_GET['bestand']."");
?>
Gewijzigd op 29/05/2016 12:11:13 door Joakim Broden
 
Ben van Velzen

Ben van Velzen

29/05/2016 12:32:02
Quote Anchor link
En dat is niet relevant. De content disposition mag zelfs geen mapnamen hebben. Doe dit eens:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Length: ' . filesize(__DIR__ .'/opslag/'.$_GET['bestand']));
    header('Content-Type: image/png');        
    header("Content-Disposition: attachment; filename=".$_GET['bestand']);
    readfile(__DIR__ . '/opslag/' . $_GET['bestand']);
?>
 
Thomas van den Heuvel

Thomas van den Heuvel

29/05/2016 14:35:44
Quote Anchor link
My 2c:
- in bestandsnamen kunnen spaties zitten, zet daartoe dubbele quotes om filename, oftewel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
header('Content-Disposition: attachment; filename="'.$fileName.'"');
?>

- voeg een exit-statement aan het einde toe om te voorkomen dat er verder nog output geproduceerd wordt wat het bestand mogelijk kan corrumperen
 
Marco Eilander

Marco Eilander

29/05/2016 18:32:58
Quote Anchor link
Ik denk, dat het toch op één of ander manier corrupt wordt.
Er komt nu wel data in het bestand te staan als ik het open, maar ik blijf de melding krijgen, dat het bestand niet geopend kan worden in de windows 10 app -> Foto's.

Dit heb ik nu:

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
<?php
    $filename
= $_GET['bestand'];
    $ext = explode(".",$filename);
    if($ext[1] == 'png'){
        header('Content-Type: image/png');
    }

    if($ext[1] == 'jpg'){
        header('Content-Type: image/jpg');
    }

    if($ext[1] == 'jpeg'){
        header('Content-Type: image/jpeg');
    }
    
    if($ext[1] == 'gif'){
        header('Content-Type: image/gif');
    }

    if($ext[1] == 'bmp'){
        header('Content-Type: image/bmp');
    }
    
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Length: ' . filesize(__DIR__ .'/opslag/'.$filename));      
    header('Content-Disposition: attachment; filename="'.$filename.'"');
    readfile(__DIR__ . '/opslag/' . $filename);
    exit();
?>


UPDATE

Ik had notepad++ op UTF-8 staan, nu ik het op ANSI heb gezet, werkt het! :)
Gewijzigd op 29/05/2016 18:39:06 door Marco Eilander
 
Thomas van den Heuvel

Thomas van den Heuvel

30/05/2016 00:34:19
Quote Anchor link
Hmm...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$ext
= explode(".",$filename);
// ...
if($ext[1] == 'png'){ // altijd tweede positie $ext[1]?
?>

En wat als je foto nu dit.is.een.test.jpg heet, wat een volledig valide naam is?

De extensie van een bestand is doorgaans alles wat na de laatste punt in de bestandsnaam komt.

Mogelijke verbetering, gebruik:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
function getExtension($in) {
    return substr($in, strrpos($in, '.') + 1);
}

?>
 
Marco Eilander

Marco Eilander

30/05/2016 10:47:30
Quote Anchor link
Dat gebeurt niet. ;)
Alle bestanden worden opgeslagen met een willekeurig reeks karakters a-z, A-Z, 0-9 in mijn database.
Mogelijkheid om die bestanden van naam te veranderen is niet mogelijk.
 
Ben van Velzen

Ben van Velzen

30/05/2016 11:01:06
Quote Anchor link
De mogelijkheid om een andere bestandsnaam op te vragen blijft er altijd, en daarmee blijft het gevaarlijk om het zo te doen.
 
Marco Eilander

Marco Eilander

30/05/2016 13:10:32
Quote Anchor link
Er gebeurt niks gevaarlijks, wanneer het bestand niet bestand niet bestaat, downloaden ze gewoon een leeg bestand.
Daarnaast wordt er ook nog gecontroleerd voor het downloaden, of het bestand wel bestaat, zo niet, dan worden ze doorgestuurd naar de index.
 
Ben van Velzen

Ben van Velzen

30/05/2016 14:03:36
Quote Anchor link
Goed, geef mij maar eens een link naar waar dit online staat, dan zal ik je even demonstreren hoe dat te misbruiken is ;-)
Kort gezegd, als je op deze manier werkt gaat het vroeg of laat helemaal fout, en als je betalende klanten hebt gaat geen aansprakelijkheidsverzekering je nog redden. Je bouwt nu tegen beter weten in een hele mooie backdoor in.
Gewijzigd op 30/05/2016 14:06:23 door Ben van Velzen
 



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.