web-dev-qa-db-fra.com

Télécharger des images avec un commentaire

EDIT: J'ai finalement eu la bonne réponse; voir ma propre réponse sous ce post pour tous ceux qui sont intéressés.

Après avoir cherché pendant deux jours et essayé encore et encore, je me suis vraiment retrouvé coincé. J'ai un client qui collecte les expériences des clients sur son site Web en utilisant le formulaire de commentaire. tous les commentaires sont affichés en tant que commentaire client. Jusqu'ici tout va bien.

Mais comme son entreprise fait beaucoup de voyages, il doit donner à ses clients le téléchargement de cinq images au maximum.

Donc, ce que je dois faire, c'est trouver un moyen de permettre aux clients de télécharger des médias avec leur formulaire de commentaire rempli. Je sais que c'est un peu risqué, car il pourrait y avoir des images corrompues téléchargées et ainsi de suite. Mais je voudrais quand même y arriver.

J'ai essayé beaucoup de choses, mais le point où je suis coincé encore et encore est la gestion du téléchargement de fichier, pour un utilisateur non connecté qui est posté avec un formulaire de commentaire ...

Toutes les pensées seront très appréciées!

2
Dennis Hunink

EDIT: Avec l’aide d’un ami, j’ai trouvé une solution. Pour toutes les personnes intéressées: Utilisez un post-type personnalisé, dans mon cas comment_post. Puis téléchargez les images comme ceci:

$new_post = array(
'post_title'    => $title,
'post_content'  => $comment,
    'post_status'   => 'pending',// Choose: publish, preview, future, draft, etc.
    'post_type' => 'comments_post'  // Use a custom post type
);
//save the new post and return its ID
$pid = wp_insert_post($new_post); 
//Upload the file(s)
require_once(ABSPATH . "wp-admin" . '/includes/image.php');
require_once(ABSPATH . "wp-admin" . '/includes/file.php');
require_once(ABSPATH . "wp-admin" . '/includes/media.php');

if ($_FILES) {
    foreach ($_FILES as $file => $array) {
    //Check if the $_FILES is set and if the size is > 0 (if =0 it's empty)
    if(isset($_FILES[$file]) && $_FILES[$file]['size']>0){
    if ($_FILES[$file]['error'] !== UPLOAD_ERR_OK) {
    echo '<div class="allert alert-error"><p>Upload error : ' . $_FILES[$file]['error'] . '</p></div>';
    $upload = false;
}else{
$upload = true;
}
if($upload == true){
    $attach_id = media_handle_upload( $file, $pid );
}
}
 }   
                                }//End if '$_FILES'

                            }//End if errornumbers
2
Dennis Hunink