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

时间:2016-06-20 05:57:49

标签: php wordpress image plugins

我正在创建一个将图片上传到媒体库的插件。

但是我无法存储它。帮助整理。

<?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       
                }
?>

我在过去的几个小时里一直在研究它并且搜索了很多但没有结果:(

1 个答案:

答案 0 :(得分:1)

您可以使用move_uploaded_file功能上传文件,但它不会显示在WordPress媒体库中,因为数据库中还没有文件名,所以您必须使用如下的WordPress功能。

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:

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

所以,现在你应该在WordPress媒体上上传图像。