我的设置API中有上载图像的功能,它按预期上载图像,但当用户选择上载非图像文件时,问题就会出现,以阻止用户上载我正在使用的其他文件(非图像文件wp_die(\'No image found\');
显示一条导致可怕的500内部服务器错误消息。奇怪的是我的wp\\U死了wp_die(\'No image found\');
在我的本地计算机上运行正常,但没有联机。
function validate_setting($plugin_options){
//echo \'<pre>\'; print_r($_FILES); echo \'</pre>\';
$keys = array_keys($_FILES);
$i = 0;
foreach ($_FILES as $image) {
if($image[\'size\']){
//Is it an image?
if(preg_match(\'/(jpg|jpeg|png|gif)$/i\',$image[\'type\'])){
$override = array(\'test_form\' => false);
$file = wp_handle_upload($image,$override);
$plugin_options[$keys[$i]] = $file[\'url\'];
}
else{
wp_die(\'No image found\');//This triggers 500 Internal Server Error WHY??
//echo:\'no image found\'; //Now this DON\'T work locally but works ONLINE?!?
}
}
else{
$options = get_option(\'theme_options\');
$plugin_options[$keys[$i]] = $options[$keys[$i]];
}
$i++;
}
return $plugin_options;
}
我试图改变
wp_die()
到
echo \'no image found\';
这种情况发生了:现在在我的locall机器上,它回显“nothing”(没有显示警告),但现在联机,它工作并显示“no image found”(没有找到图像)警告。。。
我知道我可以简单地删除else{
wp_die(\'No image found\');
}
零件和显示没有警告,但为什么它不能按预期工作?
有人能告诉我我的代码出了什么问题,以及如何正确显示wp\\u die(“找不到图像”)的警告(而不会导致“500内部服务器错误”)?
SO网友:Dejo Dekic
这对我来说真的很好:
else{
$error = new WP_Error( \'not_found\', _(\'No image found! Please upload images only!\'),
array( \'title\' => _(\'Plugin Error\'), \'response\' => \'406\', \'back_link\' => true ) );
if( is_wp_error($error) ){
wp_die( $error, \'\', $error->get_error_data() );
}
}