因此,我仍然在为我的主题构建设置页面,我忙于文件上传功能。wp_handle_upload函数正在工作,但文件没有被抓取。
这是已登记的选项:
add_settings_field("upload_logo", "Upload Logo", "logo_display", "theme-options", "section");
register_setting("section", "upload_logo", "handle_logo_upload");这是设置主题页面的函数:
function theme_settings_page() {
?>
<div class="wrap">
<h1>Theme Panel</h1>
<form method="post" action="options.php" enctype="multipart/form-data">
<?php
settings_fields("section");
do_settings_sections("theme-options");
submit_button();
?>
</form>
</div>
<?php
}这是接受图像的函数:
function logo_display()
{
?>
<form method="post" action="options.php" enctype="multipart/form-data">
<input type="file" name="upload_logo" id="upload_logo" value="<?php echo get_option('upload_logo'); ?>"/>
</form>
<?php
}这是处理上传的函数:
function handle_logo_upload() {
if ( !function_exists( 'wp_handle_upload' ) ) {
require_once( ABSPATH . 'wp-admin/includes/file.php' );
}
$uploadedfile = $_FILES['upload_logo']['submit'];
$upload_overrides = array( 'test_form' => false );
$movefile = wp_handle_upload( $uploadedfile, $upload_overrides );
if ( $movefile ) {
$wp_filetype = $movefile['type'];
$filename = $movefile['file'];
$wp_upload_dir = wp_upload_dir();
$attachment = array(
'guid' => $wp_upload_dir['url'] . '/' . basename( $filename ),
'post_mime_type' => $wp_filetype,
'post_title' => preg_replace('/\.[^.]+$/', '', basename($filename)),
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, $filename);
echo '<br>';
//return $attach_id;
var_dump($uploadedfile);
//print_r($uploadedfile);
//wp_die('end');
}
return 'fail';
}当我在变量var_dump上做$uploadedfile时,我得到了NULL。为什么会这样呢?
下面是我的主题:http://pasteboard.co/yFck7LW.png的设置页面的屏幕截图
这是当我试图上传一些东西时上传的空文件:http://pasteboard.co/yFhrUbB.png
请帮帮我!
发布于 2015-09-11 11:03:26
问题是:
$uploadedfile = $_FILES['upload_logo']['submit'];将其改为:
$uploadedfile = $_FILES['upload_logo']['name'];https://stackoverflow.com/questions/32521805
复制相似问题