>> Technologie Électronique >  >> Maison intelligente >> Vie connectée

Comment permettre l'upload de fichiers sur mon site web (PHP + HTML)

L'upload de fichiers enrichit l'interactivité (site d'annonces, partage vidéo, CV…). Implémentation simple avec un formulaire HTML + script PHP.

Étape 1 : Formulaire HTML (uploadfile.html)

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>Upload</title></head><body>
<form action="uploadfile.php" method="post" enctype="multipart/form-data">
  <input type="file" name="userfile" id="userfile">
  <input type="submit" value="Envoyer le fichier">
</form>
</body></html>

Étape 2 : Script PHP (uploadfile.php)

<?php
$dossier_destination = "uploads/"; // Créez ce dossier et chmod 755/775
$fichier_cible = $dossier_destination . basename($_FILES['userfile']['name']);

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $fichier_cible)) {
    echo "Succès : " . htmlspecialchars(basename($_FILES['userfile']['name'])) . " uploadé.";
} else {
    echo "Erreur lors de l'upload.";
}
?>

Important : L'attribut name="userfile" dans l'input HTML doit correspondre exactement à $_FILES['userfile'] en PHP.

Étape 3 : Déploiement et test

  • Créez le dossier uploads/ sur votre serveur (même niveau que les scripts).
  • Donnez-lui les droits d'écriture : chmod 755 uploads (ou 775 selon config).
  • Uploadez les deux fichiers sur votre serveur web (PHP activé).
  • Testez : ouvrez uploadfile.html dans le navigateur → Choisissez fichier → Envoyer.

⚠️ Sécurité INDISPENSABLE (le code ci-dessus est MINIMAL)

  • Validez le type MIME ($_FILES['userfile']['type']) ET l'extension (liste blanche).
  • Limitez la taille (upload_max_filesize, post_max_size dans php.ini + vérif PHP).
  • Renommez le fichier (ex: hash + extension) pour éviter écrasement et exécution de scripts.
  • Stockez hors racine web ou interdisez l'exécution PHP dans uploads/ (.htaccess : php_flag engine off).
  • Scannez antivirus si fichiers utilisateurs non de confiance.
Vie connectée