简体   繁体   English

WordPress:为什么图像没有保存在媒体库中?

[英]WordPress : Why image is not saved in media library?

I am creating a plugin to upload an image into media library. 我正在创建一个插件以将图像上传到媒体库。

But i am unable to store it. 但是我无法存储它。 Help to sort out. 帮助整理。

<?php
    /*
    Plugin Name:  ****
    */
    add_action( 'admin_menu', 'my_file_upload');
    function my_file_upload() {
            $uploaddir = '/uploads';
            $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
            echo "<p>";
            if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
                 echo "File is valid, and was successfully uploaded.\n";
                } else {
                   echo "Upload failed";
                }
                echo "</p>";
                echo '<pre>';
                echo 'Hiiiiii';
                print_r($_FILES);
                print "</pre>";
                echo"<imgsrc=$_FILES[userfile][tmp_name]>";
                ?>
                    <form enctype="multipart/form-data" action="#" method="POST">
                    Send this file: <input name="userfile" type="file" />
                    <input type="submit" value="Send File" />
                </form>
            <?php       
                }
?>

I have been working on it from last few hours and searched a lot but no results :( 我从最近几个小时开始研究它,但搜索了很多但没有结果:(

You can upload file using move_uploaded_file function, but it does not display in WordPress media library, because file name is not there in database yet, so you have to use WordPress function as below. 您可以使用move_uploaded_file函数上载文件,但是由于数据库中尚不存在文件名,因此它不会显示在WordPress媒体库中,因此您必须使用以下WordPress函数。

PHP: PHP:

require_once(ABSPATH . "wp-admin" . '/includes/image.php');
require_once(ABSPATH . "wp-admin" . '/includes/file.php');
require_once(ABSPATH . "wp-admin" . '/includes/media.php');

$attachment_id = media_handle_upload('userfile', $post_id);
update_post_meta($post_id, '_thumbnail_id', $attachment_id);

HTML: HTML:

<input type="file" name="userfile" id="file-upload" />

So, now you should get uploaded image in WordPress media. 因此,现在您应该在WordPress媒体中获取上传的图片。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM