敏捷上传器 Wordpress 实现

6
我正在尝试实现一个前台Wordpress上传器,用户可以从WordPress页面上传图片并在上传之前调整图片大小。我发现了Agile Uploader。上传器位于表单中。

问题在于,当我点击表单中的提交按钮发送数据时,所有字段都被存储在一个帖子中,但图片没有被存储。

这是我的上传页面的代码:

<form id="submitForm" action="<?php echo get_permalink(); ?>" method="post" enctype="multipart/form-data" onsubmit="return ray.ajax()">
<!-- upload photos -->

  <div style="float:left;width:410px; height:246px;">
    <div id="multiple"></div>
  </div>

  <script type="text/javascript">
    jQuery('#multiple').agileUploader({
      formId: 'submitForm',
      flashVars: {
        file_post_var: 'attachment',
        firebug: false,
        form_action: '',
        file_limit: 15,
        max_post_size: (1000 * 1024)
      }
    }); 
  </script>

  </div>   <!-- end - upload photos -->
</form>

还有WordPress上传的代码(它在同一个文件中)

/* upload photos */
if ($post_error == false) {

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

  $files = $_FILES['attachment'];

  if ($files) { 

    foreach ($files['name'] as $key => $value) {
      if ($files['name'][$key]) {
        $file = array(
          'name' => $files['name'][$key],
          'type' => $files['type'][$key],
          'tmp_name' => $files['tmp_name'][$key],
          'error' => $files['error'][$key],
          'size' => $files['size'][$key]
        );  
      }

      $_FILES = array("attachment" => $file);
      //$_FILES = array_reverse($_FILES);
      foreach ($_FILES as $file => $array) {                                  
        $attach_id = media_handle_upload( $file, $ad_id, array(), array( 'test_form' => false ) );
        if ($attach_id < 0) { $post_error = true;
      }
    }
  }
}

我做错了什么?


那问题是整个表单的保存吗? - janw
1
有任何错误信息吗?请检查您的Firebug控制台并在此处发布以获得快速答复。 - Suriyan Suresh
2个回答

0

你确定这些图片没有保存为创建的文章的“附件”吗?

尝试运行:

$attachments = get_posts( array(
'post_type' => 'attachment',
'posts_per_page' => -1,
'post_parent' => $post->ID,
'exclude'     => get_post_thumbnail_id()) 
);
var_dump($attachments);

在用于查看文章的模板文件中。 如果您不熟悉编码,可以使用插件来显示附加文件。 像这个 "List Attachments Shortcode" 插件。

0

这可能有点简单,也可能不是你的问题,但是在if ($attach_id < 0) { $post_error = true;后面缺少了一个右花括号(})。

这是你实际代码中的问题还是你在上面的问题中忘记放入它了?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接