Dino Geek, probeer je te helpen

Hoe om te gaan met grote bestandsuploads in PHP?


Het verwerken van grote bestandsuploads in PHP kan een uitdagende taak zijn, maar met de juiste configuratie en technieken kan dit efficiënt worden gedaan. Hier is een gedetailleerde uitleg over hoe je grote bestanden kunt uploaden in PHP, inclusief enkele voorbeelden.

  1. Configuratie van `php.ini`

De eerste stap is het aanpassen van de PHP-configuratiebestanden (meestal `php.ini`) om uploads van grote bestanden te ondersteunen. Hier zijn enkele belangrijke instellingen:

1. `file_uploads`: Zorg ervoor dat deze instelling is ingeschakeld zodat PHP bestanduploads toestaat. \`\`\`ini file\_uploads = On \`\`\`

1. `upload_max_filesize`: Dit bepaalt de maximale grootte van een geüpload bestand. Stel deze waarde in op de maximale bestandsgrootte die je wilt toestaan. \`\`\`ini upload_max_filesize = 100M \`\`\`

1. `post_max_size`: Dit bepaalt de maximale grootte van POST-data die PHP zal accepteren. Dit moet groter zijn dan `upload_max_filesize`. \`\`\`ini post_max_size = 110M \`\`\`

1. `max_execution_time`: Dit bepaalt de maximale tijd (in seconden) die een script mag draaien voordat het wordt afgebroken. Voor grote uploads wil je deze waarde verhogen. \`\`\`ini max_execution_time = 300 \`\`\`

1. `max_input_time`: Dit bepaalt de maximale tijd dat een script mag besteden aan het parsen van inputdata, zoals POST- of GET-data. \`\`\`ini max_input_time = 300 \`\`\`

  1. PHP Script Aanpassingen

Zodra de configuratie-instellingen zijn aangepast, moet je je PHP-script voorbereiden om grote bestanduploads te verwerken. Hier is een voorbeeld van een simpel uploadscript:

```
if ($_SERVER[‘REQUEST_METHOD’] == ‘POST’ && isset($_FILES[‘file’])) { $errors = []; $file_name = $_FILES[‘file’][‘name’]; $file_size = $_FILES[‘file’][‘size’]; $file_tmp = $_FILES[‘file’][‘tmp_name’]; $file_type = $_FILES[‘file’][‘type’]; $file_ext = strtolower(end(explode(‘.’, $_FILES[‘file’][‘name’])));

$extensions = [“jpeg”, “jpg”, “png”, “pdf”]; // Toegestane bestandstypen if (!in_array($file_ext, $extensions)) { $errors[] = “Extensie niet toegestaan, kies een JPEG, PNG of PDF bestand.”; } if ($file_size > 100 * 1024 * 1024) { // 100 MB $errors[] = ‘Bestandsgrootte moet kleiner zijn dan 100 MB’; } if (empty($errors)) { move_uploaded_file($file_tmp, “uploads/” . $file_name); echo “Bestand succesvol geüpload”; } else { foreach ($errors as $error) { echo $error . “
”; } } } ?>



Bestand uploaden






```

  1. Beveiligen van Bestandsuploads

Het veilig verwerken van uploads is cruciaal. Hier zijn enkele beveiligingsmaatregelen:

1. Controleer bestandsextensies: Controleer de bestandsextensie om ervoor te zorgen dat alleen bepaalde typen bestanden worden toegestaan.
2. Gebruik een unieke bestandsnaam: Voorkom bestandsnaamconflicten door een unieke naam te genereren voor elk geüpload bestand.
3. Beperk bestandslocatie: Sla bestanden op in een directory buiten de root van de webserver om directe toegang tot de bestanden te voorkomen.
4. Controleer bestandsinhoud: Controleer of het geüploade bestand werkelijk van het opgegeven type is. Bijvoorbeeld, gebruik `getimagesize` voor afbeeldingsbestanden.

  1. Bronnen

1. [PHP Handleiding voor Bestandsuploads](https://www.php.net/manual/en/features.file-upload.php)
2. [Stack Overflow](https://stackoverflow.com/questions/15179016/what-is-the-max-upload-size-in-php)
3. [OWASP File Upload Security](https://owasp.org/www-community/vulnerabilities/Unrestricted_File_Upload)

Door deze stappen te volgen, kun je grote bestanden efficiënter en veiliger uploaden in PHP.


Genereer eenvoudig artikelen om uw SEO te optimaliseren
Genereer eenvoudig artikelen om uw SEO te optimaliseren





DinoGeek biedt eenvoudige artikelen over complexe technologieën

Wilt u in dit artikel worden geciteerd? Het is heel eenvoudig, neem contact met ons op via dino@eiki.fr

CSS | NodeJS | DNS | DMARC | MAPI | NNTP | htaccess | PHP | HTTPS | Drupal | WEB3 | LLM | Wordpress | TLD | Domeinnaam | IMAP | TCP | NFT | MariaDB | FTP | Zigbee | NMAP | SNMP | SEO | E-Mail | LXC | HTTP | MangoDB | SFTP | RAG | SSH | HTML | ChatGPT API | OSPF | JavaScript | Docker | OpenVZ | ChatGPT | VPS | ZIMBRA | SPF | UDP | Joomla | IPV6 | BGP | Django | Reactjs | DKIM | VMWare | RSYNC | Python | TFTP | Webdav | FAAS | Apache | IPV4 | LDAP | POP3 | SMTP

| Whispers of love (API) | Déclaration d'Amour |






Juridische Vermelding / Algemene Gebruiksvoorwaarden