X

Comment télécharger des fichiers soumis par l’utilisateur dans la médiathèque ?

Snippets by IsItWP

Voulez-vous télécharger des fichiers soumis par les utilisateurs dans la médiathèque ? Ce snippet se chargera de télécharger les fichiers dans votre médiathèque.

Instructions

  1. Ajoutez ce code dans le fichier functions.php de votre thème ou dans un plugin spécifique à votre site.
  2. Tous les fichiers téléchargés sont stockés dans le tableau $_FILES, vous devrez donc parcourir en boucle le tableau $_FILES et passer chaque tableau de fichier à la fonction upload_user_file(). Vous pouvez utiliser ce code dans votre gestionnaire de formulaire :

    if( ! empty( $_FILES ) ) {
      foreach( $_FILES as $file ) {
        if( is_array( $file ) ) {
          $attachment_id = upload_user_file( $file );
        }
      }
    }
    
  3. N’oubliez pas que si vous voulez que votre formulaire puisse gérer les téléchargements de fichiers, vous devez ajouter l’attribut enctype="multipart/form-data" à la balise <form>.
function upload_user_file( $file = array() ) {

      require_once( ABSPATH . 'wp-admin/includes/admin.php' );

      $file_return = wp_handle_upload( $file, array('test_form' => false ) );

      if( isset( $file_return['error'] ) || isset( $file_return['upload_error_handler'] ) ) {
          return false;
      } else {

          $filename = $file_return['file'];

          $attachment = array(
              'post_mime_type' => $file_return['type'],
              'post_title' => preg_replace( '/.[^.]+$/', '', basename( $filename ) ),
              'post_content' => '',
              'post_status' => 'inherit',
              'guid' => $file_return['url']
          );

          $attachment_id = wp_insert_attachment( $attachment, $file_return['url'] );

          require_once(ABSPATH . 'wp-admin/includes/image.php');
          $attachment_data = wp_generate_attachment_metadata( $attachment_id, $filename );
          wp_update_attachment_metadata( $attachment_id, $attachment_data );

          if( 0 < intval( $attachment_id ) ) {
              return $attachment_id;
          }
      }

      return false;
}

Note : Si c’est la première fois que vous ajoutez des extraits de code dans WordPress, veuillez consulter notre guide sur la manière de copier/coller correctement des extraits de code dans WordPress, afin de ne pas endommager accidentellement votre site.

Si vous avez aimé cet extrait de code, n’hésitez pas à consulter Comment mettre en place un suivi des téléchargements sur WordPress avec Google Analytics.

Commentaires   laisser une réponse

  1. Cool, is there a code that you can preview the file?

    1. I’m sure anything could be done, but it does not have a preview of the file.

Ajouter un commentaire

Nous sommes heureux que vous ayez choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre privacy policy, et que tous les liens sont en nofollow. N'utilisez PAS de mots-clés dans le champ du nom. Engageons une conversation personnelle et constructive.

WordPress Launch Checklist

L'ultime liste de contrôle pour le lancement de WordPress

Nous avons rassemblé tous les éléments essentiels de la liste de contrôle pour le lancement de votre prochain site Web WordPress dans un ebook pratique.
Oui, envoyez-moi le gratuit !