J'ai un site avec un formulaire frontal où les utilisateurs peuvent ajouter un nouveau message. Le formulaire contient des détails de base et un champ d'image. Le formulaire a également quelques champs d'image supplémentaires, contrôlés par acf.Le téléchargement de l'image Wordpress à partir de frontend génère 500 erreur interne du serveur
Maintenant, le problème est quand j'utilise des images comme png tout fonctionne bien. Mais quand j'utilise des images comme jpg, cela donne une erreur interne au serveur. En acf j'ai ajouté les formats de fichiers acceptés comme "jpg, png, jpeg". Mais je ne suis pas sûr de savoir comment ajouter des formats de fichier pour l'image sélectionnée.
Voici le code que j'utilise. Ici, la première image sera toujours l'image sélectionnée.
foreach($_FILES as $file) {
if(is_array($file)) {
if($count==1){
$featured_image_id = upload_user_file($file);
}else{
$item_image[] = upload_user_file($file);
}
}
$count++;
}
Et voici la fonction upload_user_file
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;
}
Hey, pouvez-vous élaborer à ce sujet? Je suis sûr que je suis confronté à exactement le même problème que vous. – Jacksonkr
Il y a une option dans le champ d'image appelée "autoriser les types de fichiers". C'est ce que dit la documentation "Ajouter une validation de téléchargement pour des types de fichiers spécifiques.Entrez une liste séparée par des virgules pour spécifier quels types de fichiers sont autorisés ou laisser vide pour tous les types.Ajouté en v5.1.9". Donc, si vous le laissez vide, il permettra tous les types de fichiers. Dans de rares occasions, le fichier wordpress htaccess n'est pas mis à jour, alors essayez les paramètres> Permaliens et cliquez sur Enregistrer. Cela mettra à jour votre fichier htaccess. –