wordpress管理插件中的文件上传如何

时间:2011-06-25 13:39:07

标签: plugins admin

我正在为我的客户制作一个小型的imagemerger实用程序,这是我最喜欢的地方

/* Runs when plugin is activated */
register_activation_hook(__FILE__,'ImageMerge_install'); 

/* Runs on plugin deactivation*/
register_deactivation_hook( __FILE__, 'ImageMerge_remove' );

function ImageMerge_install() {

    add_option("ImageMerge_data", 'Default', '', 'yes');

}

function ImageMerge_remove() {
/* Deletes the database field */
    delete_option('ImageMerge_data');
}


if ( is_admin() ){

/* Call the html code */
add_action('admin_menu', 'ImageMerge_admin_menu');

    function ImageMerge_admin_menu() {
            add_options_page('Image Merging Utility', 'Image Merger', 'administrator',
            'ImageMerger', 'ImageMerge_html_page');
        }

    function ImageMerge_html_page()
    {
            echo '<pre>'.print_r($_REQUEST);
        ?>

<div>


    <form name="Image" enctype="multipart/form-data" action="" method="post">
        <p>First Image = <input type="file" name="first" id="first" /></p>
        <p>Second Image =<input type="file" name="second" id="second" /> </p>
        <p><input type="submit" /></p>


    </form>
</div>

<?php
    }
}

?>

上面的代码正确显示了两个输入字段的表单现在我想获取这两个文件的内容并对它们应用图像处理,然后将它们作为单个图像供我的客户端稍后在后编辑器中嵌入。 为此我正在考虑提供我的客户端是将文件保存在某个文件夹中,并向客户端发出指令,将他正在创建的图像嵌入到他的帖子中。

请指导我如何获取发布数据,尤其是$ _FILES我现在不想将任何内容保存到数据库,但将来可能是肯定的。

1 个答案:

答案 0 :(得分:0)

编辑:我认为这是一个 PHP 问题而不是 WordPress 问题,尽管我仍然发布了解决方案。

这只是使用$_FILES而非$_REQUEST

的问题

如果您将echo '<pre>'.print_r($_REQUEST);更改为:

echo '<pre>'.print_r($_FILES);

然后使用您的表单上传文件,它将显示刚才在表单中使用的文件。我测试了这个并在上传了我的Gravatar中使用的相同图像后得到了这个结果:

Array ( [first] => Array ( [name] => HoaH-Sonic-3Dredesign.jpg [type] => image/jpeg [tmp_name] => C:\xampp\tmp\phpFB13.tmp [error] => 0 [size] => 69181 ) [second] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) )