J'essaie de créer un formulaire public où les utilisateurs peuvent télécharger plusieurs images à joindre à un message particulier. Je peux le faire fonctionner avec des images uniques grâce à cet article à Golden Apples Design.
Le problème est que je suis aux prises avec plusieurs téléchargements de fichiers. J'ai changé
<form method="post" action="#" enctype="multipart/form-data" >
<input type="file" name="upload_attachment">
<input type="submit">
<form>
à
<form method="post" action="#" enctype="multipart/form-data" >
<input type="file" multiple=multiple name="upload_attachment[]">
<input type="submit">
<form>
Le tableau $ _FILES est maintenant dans un format différent et le gestionnaire de fichiers ne le gère pas correctement. Quelqu'un peut-il m'aider à comprendre comment passer en revue correctement le tableau et donner au gestionnaire de fichiers le format souhaité?
Ce n'est peut-être pas la façon la plus élégante de le faire (je ne suis pas sûr si le remplacement de la variable globale $ _FILES est même autorisé), mais cela semble fonctionner:
global $post;
if ($_FILES) {
$files = $_FILES['upload_attachment'];
foreach ($files['name'] as $key => $value) {
if ($files['name'][$key]) {
$file = array(
'name' => $files['name'][$key],
'type' => $files['type'][$key],
'tmp_name' => $files['tmp_name'][$key],
'error' => $files['error'][$key],
'size' => $files['size'][$key]
);
$_FILES = array("upload_attachment" => $file);
foreach ($_FILES as $file => $array) {
$newupload = wp_insert_attachment($file,$post->ID);
}
}
}
}