php - $_FILES 在使用 wordpress 自定义字段图像上传时为空,但它在核心 php 网站中工作

标签 php wordpress file-upload

<form enctype="multipart/form-data" method="post" action="uploader.php">
        <input type="file" name="pic" /><br />
        <input type="submit" value="Upload File" />
    </form>

$file_title = $_FILES["pic"]["name"];
echo "$file_title";

在 wordpress functions.php 文件中;自定义字段方法是:

function credits_meta() {
  global $post;

 $custom = get_post_custom($post->ID);
 $designers = $custom["designers"][0];
 $developers = $custom["developers"][0];
 $producers = $custom["producers"][0];
 ?>

<form method="POST" enctype="multipart/form-data">
 <p><label>Designed By:</label><br />
 <textarea cols="50" rows="5" name="designers"><?php echo $designers; ?></textarea></p>
 <p><label>Built By:</label><br />
 <textarea cols="50" rows="5" name="developers"><?php echo $developers;  ?> </textarea></p>
 <p><label>Upload Image :</label><br />
 <input type="file" name="myPhoto" size="25"/></p>
 </form>

  <?php
  }
function save_details(){
 global $post;

 $target_path = get_bloginfo('template_directory')."/images/";
 $file_title = $_FILES["myPhoto"]["name"];

$new_file_title = "wp_".$file_title;

update_post_meta($post->ID, "year_completed", $_POST["year_completed"]);
update_post_meta($post->ID, "designers", $_POST["designers"]);
update_post_meta($post->ID, "developers", $_POST["developers"]);
update_post_meta($post->ID, "producers", $new_file_title);
}

当我用核心 php 尝试上面的代码时它工作正常但是,当我尝试在 wordpress 自定义字段图像上传中做同样的事情时:$_FILES 总是给出空的。

如果我使用 $_POST["pic"];

它会给出图像的名称

我已经尝试用 print_r、var_dumb 甚至在 wordpress functions.php 文件中检查这个:

  add_action('init', 'myfunction');
  function myfunction(){
    if($_FILES){

      die("something");
    }
  }

它仍然是空的。 我要上传的文件大小是 153kb。

我的php.ini 文件:

file_uploads = on;
upload_max_filesize = 2M

任何帮助将不胜感激

最佳答案

在 functions.php 文件中添加以下钩子(Hook)可以解决问题。

add_action( 'post_edit_form_tag' , 'post_edit_form_tag' );

function post_edit_form_tag( ) {
   echo ' enctype="multipart/form-data"';
}

关于php - $_FILES 在使用 wordpress 自定义字段图像上传时为空,但它在核心 php 网站中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15245551/

相关文章:

php - 试图获取非对象的属性 'role'

php - 检查关联数组是否包含键值对

php - 将标签字符串转换为数组

php - WordPress HTTP API 代码 400

java - 在使用文件类型输入时检索文件名

php - Paypal Website Payments Pro - 获取 AVS/CVV

php - update_options 不更新 wp_options 表

php - 使用短代码显示为产品设置的 WooCommerce 产品标签名称

javascript - XmlHttpRequest 上传进度事件仅触发一次且为时过早

php - Codeigniter上传库获取Thumb文件名