Hoe begin ik aan een upload script voor bestanden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Wat ga je doen? Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q.

Bekijk vacature »

Senior DevOps-ontwikkelaar eIDAS

Functie­omschrijving Burgers en bedrijven veilig en betrouwbaar digitaal toegang geven tot diensten en producten van het ministerie van Economische Zaken en Klimaat. Als senior DevOps-ontwikkelaar bouw je daar letterlijk aan mee. En dat doe je bij DICTU: een van de grootste en meest vooruitstrevende ICT-dienstverleners van de Rijksoverheid. Jij werkt mee aan de doorontwikkeling van eIDAS, dat staat voor Electronic IDentification Authentication and trust Services. Deze koppeling maakt de grensoverschrijdende authenticatie op overheidswebsites binnen de Europese Unie mogelijk. Het ministerie van Economische Zaken en Klimaat heeft één moderne toegangspoort voor zijn diensten en inspecties. Enkele daarvan zijn dankzij eIDAS inmiddels

Bekijk vacature »

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Wat ga je doen? Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q.

Bekijk vacature »

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Wat ga je doen? Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q.

Bekijk vacature »

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Wat ga je doen? Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q.

Bekijk vacature »

Snelle Jaap

Snelle Jaap

28/08/2018 19:49:40
Quote Anchor link
Ik wil graag een upload script maken, niet alleen voor afbeeldingen maar ook voor word documenten, pdfs, excel bestanden, eventueel videos etcetera.

Waar begin ik? Als ik Google vind ik zo goed als alleen maar tutorials voor afbeeldingen.

Als iemand een website weet om me op weg te helpen zou dat top zijn.
 
PHP hulp

PHP hulp

26/09/2020 00:33:57
 
- Ariën -
Beheerder

- Ariën -

28/08/2018 19:59:50
Quote Anchor link
Het proces voor afbeeldingen als documenten is haast gelijk. Het enige wat verschilt is het controleren op de juiste headers en extenties.

Ikzelf gebruik de class van Verot.net omdat die erg veelzijdig is.
 
Snelle Jaap

Snelle Jaap

29/08/2018 14:00:43
Quote Anchor link
Ook als ik dit zou willen doen met Ajax? Ik heb al een afbeelding upload script gemaakt die een base64 string door stuurd naar mijn PHP bestand. Datzelfde kan toch niet met bijvoorbeeld een word document of wel?
 
Thomas van den Heuvel

Thomas van den Heuvel

29/08/2018 14:57:34
Quote Anchor link
Een eerste stap lijkt mij je te verdiepen in de werking zodat je een duidelijk beeld hebt van hoe PHP omgaat met uploads.

Vervolgens kies je een techniek (AJAX of whatever) en/of een library (Verot.net).

base64 is een content transfer encoding waarbij willekeurige data wordt verpakt in ASCII. Deze data kan van alles zijn, dus zowel een textbestand als een binair bestand. Het lijkt mij niet erg zinnig om iets base64 te uploaden als je dat bedoelt (het base64 equivalent van een bestand heeft ~33% overhead, dus om dit bestand nu op voorhand op te blazen), noch ken ik daar tools voor. Je kunt een bestand wel base64 serveren, bijvoorbeeld als download. Ook voor transport (bijvoorbeeld als attachment in een e-mailbericht) is base64 geschikt. Dit is vooral handig/interessant als je de data in een neutraal / universeel compatibel formaat wilt aanleveren of overdragen.

Ik denk dat er enige verwarring is over al deze begrippen en de werken. Reden te meer om je eerst even te verdiepen in al deze materie.

On a side note: je vertelt ons ook niets over de toepassing waarvoor je uploadfunctionaliteit nodig hebt, noch de frequentie van de uploads, noch de groottes van de bestanden. Het zou zelfs kunnen uitmonden in het simpelweg gebruiken van FTP, dit is immers bedoeld voor het verzenden van bestanden. Dit in tegenstelling tot HTTP als "drager" die hier eigenlijk niet in eerste instantie voor gemaakt is.
Gewijzigd op 29/08/2018 15:06:26 door Thomas van den Heuvel
 
Rob Doemaarwat

Rob Doemaarwat

29/08/2018 14:58:23
Quote Anchor link
Ja hoor, gaat prima (controleer het zelf maar*). Elk bestand is gewoon een bak binaire data, en die kun je gewoon via base64 doorsluizen. Op de server doe je dan het omgekeerde, en daar heb je je originele bestand weer terug.

(dit was een reactie op Snelle Jaap 29/08/2018 14:00:43; Thomas fietste er tussendoor)

* Kan zijn dat je huidige upload tooltje je beperkt tot afbeeldingen, dat moet je er dan even uit slopen

Maar als we dan toch bezig zijn: @Thomas: base64 wordt bij asynchroon uploaden vaak gebruikt om het bestand over te sluizen. Er zijn nl twee mogelijkheden (voor zover ik weet):

- De file upload in een mini <form> verpakken die naar een hidden frame POST. Het bestand wordt dan op de normale manier ge-upload (en zit dus in $_FILES in PHP-land). Nadeel is dat je wat minder controle hebt, en je een (mini) <form> ook niet in een groter <form> kunt nesten.

- De file upload via een Javascript Filereader object client-side inlezen en vervolgens asynchroon naar de server sturen. Om problemen met evt. non-ASCII karakters in de call te voorkomen (JSON) wordt de data dan meestal als base64 encode. Dit kan heel eenvoudig via FileReader.readAsDataURL().

Kan tegenwoordig met FormData lees ik nu. Volgens mij dan zonder base64 tussenstap (en geen JSON, gewoon een ouderwetse POST, zoals je ook een <form> submit).
Gewijzigd op 29/08/2018 16:20:11 door Rob Doemaarwat
 
Snelle Jaap

Snelle Jaap

29/08/2018 16:57:27
Quote Anchor link
Bedankt voor de uitleg. Ik kwam zelf uit bij deze plugin : https://github.com/kuiwang/blueimp-jQuery-File-Upload/

Die regelt een hoop voor je, het is alleen nog even uitzoeken hoe ik de bestandsinformatie kan opslaan in mijn database.

@Thomas over je vraag hoe vaak en wat voor bestanden er geupload zullen worden: Er is maar 1 persoon op mijn site die bestanden gaat uploaden, wat voornamelijk pdfs zullen zijn of .doc bestanden.

@Rob Klopt, die plugin gebruikt ook formdata, werkt top.
 
- Ariën -
Beheerder

- Ariën -

29/08/2018 18:55:25
Quote Anchor link
Ikzelf heb voor mijn CMS twee systemen aan elkaar gekoppeld. PLupload en de class van Verot.net. Dan heb je twee dingen die je makkelijk kan aanpassen onafhankelijk van elkaar. Ik denk ik dat het bij blueimp-jQuery-File-Upload wat lastiger kan worden, als je de boel goed up-to-date wilt houden.

Het blijft een keuze verder die per persoon verschilt.
 
Snelle Jaap

Snelle Jaap

29/08/2018 19:28:08
Quote Anchor link
Iets voor in de toekomst ziet er wel compacter uit dan wat ik nu heb. Gelukkig heb ik deze plugin nu bijna aan de praat zoals ik wil.
 



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.