Comment télécharger, enregistrer et définir une image sélectionnée à partir de mon frontend?
-
-
J'ai leformulaire dansmonfrontend,ceformulaireinsère untype depublicationpersonnalisé. Ceformulaire a unfichier d'entréepourtélécharger uneimage,cetteimage seraitmonimageen vedette. Je viens detéléchargeret de définir uneimage sélectionnée àpartir demonformulaireI have the form in my frontend, this form insert a custom post type. This form has one input file to upload a image, this image would be my featured image. I just upload and set one featured image from my form
- 0
- 2014-07-21
- Arie
-
Si vous souhaitez obtenir de l'aide,vous devezmodifier votre questionet décrire ce que vous avezessayéet où cela a échoué.Pour lemoment,vousn'avez décrit aucunproblème,vous êtes sur labonne voie,il vous suffit defaire quelques rechercheset d'utiliser les APIpertinentesIf you want to get help you need to edit your question and describe what have you tried and where did it fail. Right now you didn't describe any problem, you are on the right way you just need to do some research and use the relevant APIs
- 0
- 2014-07-21
- Mark Kaplun
-
Mark,je change la question. Pouvez-vous aider?Mark, I change the question. Do you can help?
- 0
- 2014-07-21
- Arie
-
duplicationpossible de [Définir leformulairefrontal de l'imageen vedette] (http://wordpress.stackexchange.com/questions/72406/set-featured-image-front-frontend-form)possible duplicate of [Set Featured Image Front Frontend Form](http://wordpress.stackexchange.com/questions/72406/set-featured-image-front-frontend-form)
- 0
- 2014-07-21
- Brad Dalton
-
Brad,mon dossier uploads/2014/07/est vide!Brad, my folder uploads/2014/07/ is empty!
- 0
- 2014-07-21
- Arie
-
Soyez également conscient des différentes vulnérabilités de sécurité que vouspouvez avoirnotamment avec l'utilisation de lafonction `move_uploaded_file`Also be aware of the various security vulnerabilities that you may have especially with the use of `move_uploaded_file` function
- 0
- 2017-11-02
- Laxmana
-
4 réponses
- votes
-
- 2018-02-11
Désolé,cen'estpas une réponse,mais vous deveznettoyer cetteentrée utilisateur. Vous autorisez l'écriture directe desbalises dans le contenu de votre article,ce quipermet à quiconque d'exécuter dujavascript à lafois dans l'administrateur wpet sur lefront-end de votre site (en supposant que vousimprimerez éventuellement ces articles). recommande vivement (auminimum) strip_tags () ou htmlspecialchars () surtoutes les chaînes d'entrée utilisateur.ilexiste desmoyensmeilleurs/alternatifs,mais c'est aumoins unbon début sansentrertrop dans les détails.
Enthéorie,letitreposeraitproblème,maisje suispresque sûr que WordPress supprimera lesbalises àpartir de là. Cependant,WordPress autorise lesbalises de script dans le contenu des articles afin que lesgenspuissent utiliser des codes d'intégration.
si vousn'êtespas conscient des risques dene pasnettoyer lesentrées utilisateur,id recommandeencoreplus deprudence lors de lagestion destéléchargements defichiers.télécharger unfichiermalveillant ou demander à desmilliers d'utilisateurs de votre site Web de lefairepourrait êtrebien pire que d'avoir dujavascriptmalveillant dans votrenavigateur. Heureusement,wp_insert_postempêchera aumoins l'injection SQL sur votreentrée utilisateur complètementbrute.
Ma seule recommandation supplémentaireest aumoins de vérifier lestypes demime autoriséset d'utiliser lesfonctions WordPress chaquefois quepossiblepourgérer lestéléchargements,en supposant qu'ilspourraient offrir une certaineprotection contre lesfichiersmalveillants,mais àpart cela,je nepeuxpas donnerbeaucoup de conseils sur lafaçon deprocéder.pour lefaireen toute sécurité (même sije l'ai déjàfait ...je n'aipas accès à ce codepour lemoment).
sorry this isn't an answer but you need to sanitize that user input. Your allowing tags to be written directly into your post content which allows anyone to run javascript in both wp admin and on the front end of your site (assuming you'll eventually print these posts). highly recommend (at minimum) strip_tags() or htmlspecialchars() on all user input strings. there are better/alternative ways but this is at least a good start without going into too much detail.
In theory the title would be an issue but I'm pretty sure WordPress will strip tags from there. however WordPress allows script tags in post content so that people can use embed codes.
if you are unaware of the risks of not sanitizing user input then id recommend even more caution when handling file uploads. downloading a malicious file or having thousands of your websites users do this could potentially be alot worse than having some malicious javascript run inside your browser. Thankfully wp_insert_post will at least prevent sql injection on your completely raw user input.
my only further recommendation is to at least check the allowed mime types and use WordPress functions whenever possible to handle the uploads, assuming that they might offer some protection against malicious files but apart from that i can't give much advice on how to do this securely (although i have done it before... i don't have access to that code right now).
-
même si cen'estpas une réponse directe,je dessinerais unegrossebordure rouge autour d'elle.vousne pouvezpas accorder suffisamment d'attention auxentrées des utilisateurs!even if this is not a direct answer I would draw a fat red border around it. you can't pay enough attention on user input!
- 0
- 2019-04-06
- Pat_Morita
-
- 2014-07-21
Vouspouvezessayer de cettefaçon:
set_post_thumbnail( $my_post_id, $thumbnail_id );
Vous devez d'abord ajouter l'image dans labibliothèque comme ceci:
$uploaddir = wp_upload_dir(); $file = $_FILES[ ... whatever you have in your POST data ... ]; $uploadfile = $uploaddir['path'] . '/' . basename( $file ); move_uploaded_file( $file , $uploadfile ); $filename = basename( $uploadfile ); $wp_filetype = wp_check_filetype(basename($filename), null ); $attachment = array( 'post_mime_type' => $wp_filetype['type'], 'post_title' => preg_replace('/\.[^.]+$/', '', $filename), 'post_content' => '', 'post_status' => 'inherit', 'menu_order' => $_i + 1000 ); $attach_id = wp_insert_attachment( $attachment, $uploadfile );
Pourplus de détails,veuillez consulter ce lien
You can try this way :
set_post_thumbnail( $my_post_id, $thumbnail_id );
You have to add image into library first like this way :
$uploaddir = wp_upload_dir(); $file = $_FILES[ ... whatever you have in your POST data ... ]; $uploadfile = $uploaddir['path'] . '/' . basename( $file ); move_uploaded_file( $file , $uploadfile ); $filename = basename( $uploadfile ); $wp_filetype = wp_check_filetype(basename($filename), null ); $attachment = array( 'post_mime_type' => $wp_filetype['type'], 'post_title' => preg_replace('/\.[^.]+$/', '', $filename), 'post_content' => '', 'post_status' => 'inherit', 'menu_order' => $_i + 1000 ); $attach_id = wp_insert_attachment( $attachment, $uploadfile );
For more detail please see this link
-
Salut Bindiya, J'aitesté,maisne fonctionnepas. Le script crée lemédiamaisn'enregistrepas lefichier dans lestéléchargements. Si lefichier a dans le dossier,est affiché dans lagaleriemultimédia,moins dans la zone dupouce.Hi Bindiya, I tested, but not works. The script create the media but not save the file in uploads. If the file has in the folder, is show in the Media Gallery, less in thumb area.
- 0
- 2014-07-21
- Arie
-
- 2017-01-11
Tout d'abord,vous devez vérifier si votrethèmeprenden charge les vignetteset si votre personne disparue CPT leprend égalementen charge.Si vous créez votre CPT via le codage PHP,vérifiez ceci:
add_theme_support( 'post-thumbnails' ); register_post_type( 'yourposttype', array( ..., 'supports' => array('title', ...,'thumbnail'), ));
}
Ensuite,si celaest vrai,le code dans réponse ci-dessous devraitfonctionner.
First of all you should check if your theme supports thumbnails and that your missing person CPT supports it too. If you create your CPT via PHP coding, check this:
add_theme_support( 'post-thumbnails' ); register_post_type( 'yourposttype', array( ..., 'supports' => array('title', ...,'thumbnail'), ));
}
Then if this is right, the code in the answer below should work.
-
- 2019-11-01
Dans votre cas,je préférerai vous suggérer d'utiliser l'une de cesfonctionsen fonction du caset surtout de ce que vous obtenez de $ _POST:
In your case, I'll prefer suggest you to use one of these functions depending on the case and especially what you get from $_POST :
J'ai unformulaire surmon site.
Cet utilisateurenregistre unepersonne disparue. J'ai créé unepersonnemanquante detype d'articlepersonnalisé,destaxonomiespersonnaliséeset des champspersonnalisés. Toutes cesentrées sont également sauvegardées dans wp.
Maisje ne saispasenvoyer uneimageet enregistrer cetteimageen tant qu'image sélectionnée.
maisne fonctionnepas
Monformulaireen frontendest:
IMPRIMER: