从Wordpress前端上传图像

时间:2014-11-06 02:17:15

标签: php wordpress file-upload

我正在尝试为用户创建一个前端表单,以便上传多个图片并将其附加到帖子中。

帖子发布得很好,所有数据都附加了。但我一直得到这两个错误:

Warning: Illegal offset type in mysite/wp-admin/includes/media.php on line 254

Warning: Illegal offset type in mysite/wp-admin/includes/media.php on line 255

我现在已经尝试了很长时间并且已经搜索过高低。我似乎无法让这个工作。我已经简化了表格,目前只上传了一张图片,但这也没有。下面是我用来处理上传的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');


if ($_FILES) {
     $attach_id = media_handle_upload( $_FILES['upl'], $rid );
     set_post_thumbnail($rid, $attach_id);
     update_post_meta($rid,'_thumbnail_id',$attach_id);
}

$rid是帖子ID。

输入字段为<input type="file" name="upl" class="ride_image"/>

我已经检查了我的最大上传大小,$_FILES全局正在正确返回图像。以下是var_dump($_FILES);

的示例
array(1) { ["upl"]=> array(5) { ["name"]=> string(21) "rizkdbr2live_lead.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(14) "/tmp/phpgPwO8W" ["error"]=> int(0) ["size"]=> int(85529) } }

请记住,这是最简化的表格。我只是想让图像真正上传到现在。我将添加验证和类似的东西。

知道这两个Illegal offset type错误是什么以及我如何解决它们?这将变得非常非常繁琐,应该很容易。是否违反所有标准,在wordpress之外编写自定义PHP来处理此图像上传或使用media_handle_upload()真正做到这一点的唯一方法?我希望尽可能遵守标准。

1 个答案:

答案 0 :(得分:2)

来自wordpress codex:

<?php media_handle_upload( $file_id, $post_id, $post_data, $overrides ); ?>

$file_id 
(string) (required) Index into the $_FILES array of the upload

http://codex.wordpress.org/Function_Reference/media_handle_upload

因此,您需要通过upl而不是$_FILE['upl']