Dynamic Multiple File Upload

Door Jan Koehoorn, 20 jaar geleden, 9.701x bekeken

Dit script genereert een formulier waaraan je inputs type file kunt toevoegen en/of verwijderen. Op deze manier kun je 1 of meer bestanden uploaden naar je server. Er zit geen check op MIMETYPES op, maar die kun je gemakkelijk zelf inbouwen.
Update1: is inmiddels ingebouwd
Update2: check op MIMETYPES blijkt niet veilig. Gebeurt nu met exif_imagetype. Toegevoegd: check op filesize en een resize functie voor te grote plaatjes.

Het script maakt gebruik van de mootools library, te downloaden op www.mootools.net

Enjoy!

groeten, Jan

Voorbeeld: http://www.jankoehoorn.nl/multiple_file_uploads_dynamic.php

Gesponsorde koppelingen

PHP script bestanden

  1. dynamic-multiple-file-upload

 

Er zijn 21 reacties op 'Dynamic multiple file upload'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
PHP Newbie
PHP Newbie
20 jaar geleden
 
0 +1 -0 -1
Simpel en effectief!

1 opmerking, wanneer ik 3 CSS bestanden upload, wil hij deze als afbeelding laten zien, dat kan uiteraard niet.
Jan Koehoorn
Jan Koehoorn
20 jaar geleden
 
0 +1 -0 -1
"Er zit geen check op MIMETYPES op"
Jelmer -
Jelmer -
20 jaar geleden
 
0 +1 -0 -1
Ik ben bang dat (alleen de gecomprimeerde versie van?) MooTools niet werkt in Safari 3. Ik krijg een foutmelding op regel 8 van mootools.js. Maar dat is MooTools' schuld.

Misschien is het handig om nog even je eigen stukjes als 'require stats.php' eruit te laten :)
Jurgen
jurgen
20 jaar geleden
 
0 +1 -0 -1
Ziet er goed uit Jan,
Maar 1 negatief punt vind ik dat je elke keer moet browsen voor een nieuw bestand of foto.

Is het niet mogelijk om tijdens het browsen meerdere bestanden,fotos in een keer te selecteren en te uploaden?
Elwin - Fratsloos
Elwin - Fratsloos
20 jaar geleden
 
0 +1 -0 -1
@jurgen
Hoe er om wordt gegaan met file-inputs is sowieso de interpretatie van de browser, aangezien dat volledig client-side is. Daar kan je niets aan doen.
Jan Koehoorn
Jan Koehoorn
20 jaar geleden
 
0 +1 -0 -1
@ Jelmer: is opgeschoond
@ jurgen: waar dacht je dat dat linkje 'toevoegen' voor was? ;-)
Robert Deiman
Robert Deiman
20 jaar geleden
 
0 +1 -0 -1
@Jan

Toevoegen -> Als je iets upload, voeg je het toe aan je online webspace. Ik denk dat hij daarmee in de war kwam.

Leuk scriptje, werkt leuk en is goed toepasbaar in allerlij omgevingen. 'k had laatst dit gevonden: Klik

Maar dit is wel net zo mooi :)
Jan Koehoorn
Jan Koehoorn
20 jaar geleden
 
0 +1 -0 -1
@ Robert: die werkt ook leuk ja! Wat ik heb gedaan is eigenlijk de Gmail manier nabouwen. De code is niet lang waardoor hij volgens mij inderdaad goed toepasbaar is.
Jan Koehoorn
Jan Koehoorn
20 jaar geleden
 
0 +1 -0 -1
UPDATE: check op MIME types toegevoegd
Johan M
Johan M
20 jaar geleden
 
0 +1 -0 -1
Mooi script Jan, maar even een vraagje: welke componenten van Mootools worden er verwacht?
// Edit: zo kan dit natuurlijk ook opgelost worden :-) : http://www.jankoehoorn.nl/mootools/mootools.js

Verder is het pad waar de afbeeldingen worden geplaatst nu Root/images/.
Dit valt uiteraard handmatig aan te passen, maar wat als je dit script in een subdir van root plaatst? Dan ga je het pad aanpassen naar subdir/images/, dat snap ik, maar zou het niet simpeler zijn om in plaats vanaf de Root te kijken naar de map waar het script in staat?

Het is maar een suggestie,
grzz. Johan.
Jan Koehoorn
Jan Koehoorn
20 jaar geleden
 
0 +1 -0 -1
Ik weet niet zeker wat je bedoelt met 'de root', maar voor uploads heb je in ieder geval $_SERVER['DOCUMENT_ROOT'] nodig. Daar plak je de dir achter waar je uploads naartoe moeten.
Johan M
Johan M
20 jaar geleden
 
0 +1 -0 -1
$_SERVER['DOCUMENT_ROOT'] is over het algemeen het absolute pad naar de map die ze de root-map noemen dacht ik?

Het is maar een kleinigheidje, en als je de waarde van $dir goed invuld is er geen enkel probleem.

Bedankt voor je script, het werkt hier perfect!

Grz. Johan.

// Edit: de manier die Robert had gevonden is ook wel geinig idd, maar Jan z'n Gmail-way vind ik persoonlijk handiger.
Ik ga trouwens even bekijken wat er nog meer allemaal te doen is met Mootools, ziet er handig en uitgebreid uit.
Erik Rijk
Erik Rijk
20 jaar geleden
 
0 +1 -0 -1
Jan,

Mooi systeem heb je weer gemaakt :)
Ik ga hem zeker gebruiken :)
Kalle P
Kalle P
20 jaar geleden
 
0 +1 -0 -1
Nadat je de fotos hebt geĆ¼pload worden ze niet netjes geresized als ze groter zijn dan de gecentreerde box.


20 jaar geleden
 
0 +1 -0 -1
Hmm... Let er wel op dat Jan dus naar $_FILES['userfile']['type'] kijkt om te kijken of het bestand mag geupload worden. Dit is niet een veilige manier, zoals je hier kunt lezen.

Pas het dus nog even zelf aan!
Winston Smith
Winston Smith
20 jaar geleden
 
0 +1 -0 -1
Heey, daar was ik toevallig laatst nog naar op zoek! Bedankt dus! :)
Allan de Bruin
Allan de Bruin
20 jaar geleden
 
0 +1 -0 -1
Geweldig script!!! Thanks!! :D
Jan Koehoorn
Jan Koehoorn
20 jaar geleden
 
0 +1 -0 -1
Update: beveiliging aangepast.
Jason de Ridder
Jason de Ridder
20 jaar geleden
 
0 +1 -0 -1
Ha jan,

Probeer anders, mits op linux, dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$file
= '~/httpdocs/eenwordbestand.doc';
return trim( exec("file -bi " . escapeshellarg ( $file ) ) );
?>


Deze kijkt naar magic numbers...
DJ Lars
DJ Lars
20 jaar geleden
 
0 +1 -0 -1
Nadat ik je table edit script heb gebruikt is dit ook weer een super script!
Ik heb dit script wel wat aangepast, ik wil gebruikers n.l. meer dan alleen plaatjes kunnen uploaden. Ik ben nu nog bezig om er ook een lijst in te hangen die de inhoud van de map waar naar geuploaded wordt. Idee is om achter de bestanden nog een prullenbakje te plaatsen zodat bestanden ook verwijderd kunnen worden.

Dan is hij voor mijn bestemming compleet :)
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Pieter Boussaer
Pieter Boussaer
20 jaar geleden
 
0 +1 -0 -1
Jan, goed script, alleen gebruik ik het niet voor afbeeldingen up te loaden maar voor een poll systeem, voor de antwoorden.
Maar zou het ook mogelijk zijn als je op toevoegen klikt, dat de naam van dit input veld gewijzigt wordt,

form
- vraag
- antwoord

en als je nu op toevoegen klikt zou de naam van antwoord, antwoord 1 moeten worden en het nieuwe input veld antwoord 2

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. dynamic-multiple-file-upload

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

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.