Wie kann ich Bilder auf einer Admin-Seite hochladen?

Ich versuche, Bilder in der Benutzerprofil-Admin-Seite hochzuladen Ich habe die function media_handle_upload im Codex hier gefunden, aber es ist etwas falsch, ich media_handle_upload immer error Uploading . Ich weiß nicht, ob etwas im Code fehlt.

Ich hatte auch versucht, die gleiche function in der Benutzer-Bearbeitungsseite zu verwenden, aber ich bekomme immer wieder “ungültige Benutzer-ID” -Fehler.

 function image_up_gall(){ ?>  <?php // Check that the nonce is valid, and the user can edit this post. if ( isset( $_POST['my_image_upload_nonce'], $_POST['post_id'] ) && wp_verify_nonce( $_POST['my_image_upload_nonce'], 'my_image_upload' ) && current_user_can( 'edit_post', $_POST['post_id'] ) ) { // The nonce was valid and the user has the capabilities, it is safe to continue. // These files need to be included as dependencies when on the front end. require_once( ABSPATH . 'wp-admin/includes/image.php' ); require_once( ABSPATH . 'wp-admin/includes/file.php' ); require_once( ABSPATH . 'wp-admin/includes/media.php' ); // Let WordPress handle the upload. // Remember, 'my_image_upload' is the name of our file input in our form above. $attachment_id = media_handle_upload( 'my_image_upload', $_POST['post_id'] ); if ( is_wp_error( $attachment_id ) ) { // There was an error uploading the image. echo "error Uploading"; } else { // The image was uploaded successfully! echo "Successfully Uploaded"; } } else { // The security check failed, maybe show the user an error. echo "security check error"; } } add_action('edit_user_profile', 'image_up_gall'); add_action('show_user_profile', 'image_up_gall'); 

Solutions Collecting From Web of "Wie kann ich Bilder auf einer Admin-Seite hochladen?"

Zunächst show_user_profile Aktions-Hooks edit_user_profile und show_user_profile das Bild nicht speichern, Sie können einfach ein Feld dort hinzufügen. Damit

 function image_up_gall(){ ?> Select image to upload:   < ?php } add_action('edit_user_profile', 'image_up_gall'); add_action('show_user_profile', 'image_up_gall'); 

Weil WordPress bereits ein eigenes Formular-Tag hat, stellen Sie sicher, dass es enctype="multipart/form-data"

Zweiter Schritt, mit personal_options_update und edit_user_profile_update Sie das Formular / upload imag speichern, um diesen Code zu verwenden:

 function save_profile_fields( $user_id ) { $target_dir = "uploads/"; // I recommend to use wp_upload_dir() to get the correct path $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); // Check if image file is a actual image or fake image if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { // here the image is uploaded and we can save it to user profile with: update_usermeta( $user_id, 'profile_pic', $target_file ); } } add_action( 'personal_options_update', 'save_profile_fields' ); add_action( 'edit_user_profile_update', 'save_profile_fields' ); 

Aber ich empfehle Ihnen, die Standard-Medienbibliothek von WordPress zu benutzen, um das zu tun, es gibt eine Menge Code, also gebe ich Ihnen besser einen Link zum Tutorial: https://rudrastyh.com/wordpress/customizable-media-uploader.html