Actualités WEB et WordPress, thèmes, plugins. Ici, nous partageons des conseils et les meilleures solutions de sites Web.

Télécharger des fichiers par programme dans WordPress

42

Récemment, je travaillais sur un projet où nous voulions télécharger des images dans le dossier personnalisé. Nous ne voulons pas utiliser la structure de téléchargement par défaut de WordPress où toutes vos images sont stockées au format année-mois. Au lieu de cela, nous voulions créer notre propre dossier dans le répertoire « uploads » et y stocker des images. Cela m’oblige à écrire un programme qui peut télécharger des fichiers via le formulaire HTML.

Dans cet article, nous étudions comment télécharger des fichiers par programme dans WordPress. Je vais vous montrer deux façons d’effectuer cette tâche. L’ un utilise la fonction wp_upload_bits() intégrée et l’autre utilise la méthode move_uploaded_file().

Télécharger des fichiers par programme dans WordPress

Pour commencer, créez un formulaire HTML simple avec une entrée de fichier et un bouton d’envoi. Vous pouvez placer ce formulaire sur votre page ou votre publication.

<h2>Upload a File</h2>
<form method="post" enctype="multipart/form-data">
    <input type="file" name="file" required />
    <input type="submit" name="upload_file" value="Upload" />
</form>

Télécharger le fichier à l’aide de wp_upload_bits

En utilisant la wp_upload_bits()fonction, votre fichier sera stocké dans le répertoire de téléchargement. Vous trouverez votre fichier dans le dossier du mois de l’année en cours (par ex. wp-content/uploads/2020->03->votre_fichier). Cette fonction ne déplacera pas un fichier parcouru vers le dossier de téléchargement. Au lieu de cela, il créera un nouveau fichier avec le contenu des fichiers. L’utilisation de cette méthode est simple. Dans votre functions.phpfichier, ajoutez le code comme suit.

<?php
function fn_upload_file() {
    if (isset($_POST['upload_file'])) {
        $upload = wp_upload_bits($_FILES['file']['name'], null, $_FILES['file']['tmp_name']);
        // save into database $upload['url]
    }
}
add_action('init', 'fn_upload_file');

Si vous imprimez la $uploadvariable, vous obtiendrez un tableau contenant le répertoire et le chemin URL du fichier téléchargé. L’utilisateur peut enregistrer le chemin de l’URL dans la base de données à l’aide de $upload['url].

Télécharger le fichier dans le répertoire personnalisé

Comme mentionné ci-dessus, en utilisant la wp_upload_bits()méthode, vos fichiers seront stockés en utilisant la hiérarchie de dossiers WordPress par défaut. Mais que se passe-t-il si vous souhaitez stocker des fichiers dans votre propre répertoire ?

Dans ce cas, vous devez créer votre dossier personnalisé dans le répertoire « uploads » et déplacer votre fichier dans ce dossier. Supposons que vous souhaitiez stocker vos fichiers dans le répertoire ‘uploads/product-images’. Dans le code ci-dessous, nous allons créer un runtime de dossier ‘product-images’ et y stocker des fichiers. Ce code aussi vous pouvez écrire dans le functions.phpfichier.

function fn_upload_file() {
    if (isset($_POST['upload_file'])) {
        $upload_dir = wp_upload_dir();
 
        if (! empty( $upload_dir['basedir'])) {
            $user_dirname = $upload_dir['basedir'].'/product-images';
            if (! file_exists( $user_dirname)) {
                wp_mkdir_p( $user_dirname );
            }
 
            $filename = wp_unique_filename( $user_dirname, $_FILES['file']['name'] );
            move_uploaded_file($_FILES['file']['tmp_name'], $user_dirname .'/'. $filename);
            // save into database $upload_dir['baseurl'].'/product-images/'.$filename;
        }
    }
}
add_action('init', 'fn_upload_file');

Ici, j’utilise la méthode wp_unique_filename() qui donne le nom de fichier unique pour le répertoire donné.

C’est ça! Il s’agit de savoir comment télécharger des fichiers par programme dans WordPress. Utilisez-vous une autre méthode pour une tâche similaire? S’il vous plaît partager dans la section commentaire ci-dessous.

Articles Liés

Source d’enregistrement: artisansweb.net

Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Plus de détails