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
- Ajoutez ce code dans le fichier functions.php de votre thème ou dans un plugin spécifique à votre site.
- 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 fonctionupload_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 ); } } }
- 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.
Cool, is there a code that you can preview the file?
I’m sure anything could be done, but it does not have a preview of the file.