<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/