J'ai une page où les utilisateurs peuvent télécharger un fichier HTML pour l'utiliser comme thème. Le fichier HTML fait l'objet de quelques vérifications avant que certaines options ne soient affichées à l'utilisateur. L'utilisateur remplit le formulaire en relation avec le fichier HTML, et soumet le formulaire. Cependant, étant donné que le fichier dans le dossier temporaire est détruit après la fin du script, je ne sais pas comment obtenir le fichier HTML une fois que le formulaire a été rempli et soumis à nouveau, à moins de demander à l'utilisateur de retélécharger le fichier, ce qui suppose qu'il télécharge le même fichier, et lui demande également de télécharger quelque chose deux fois, ce qui est contre-intuitif et pourrait poser un problème avec les gros fichiers.
Voici le code (réduit pour le rendre plus facile à lire/comprendre). Le formulaire se soumet à lui-même, donc le même fichier PHP est utilisé pour les deux "étapes".
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// Form has been submitted
$files = $_FILES['file'];
<form method="POST">
/* Options about the uploaded HTML file are generated using PHP and displayed here */
<input type="submit">
</form>
} else {
?>
<form method="POST" enctype="multipart/form-data">
<label for="file">Theme File(s)</label>
<input type="file" name="file[]" multiple="multiple">
<input type="submit">
</form>
<?php
}
J'ai essayé d'utiliser <input type="file" name="file[]" multiple="multiple" value="<?php echo $files; ?> >
Mais cela n'a pas fonctionné, et l'utilisateur aurait dû retélécharger les fichiers, ce qui aurait pu poser problème si les fichiers étaient trop volumineux.
Je pensais qu'il pourrait y avoir un moyen de passer le fichier en interne, et d'avoir une vérification si un fichier a été téléchargé ou passé au script au lieu de <input type="file" name="file[]" multiple="multiple">
mais je n'ai pas trouvé le moyen de le faire.