| Server IP : 112.74.42.100 / Your IP : 216.73.216.142 Web Server : nginx/1.20.2 System : Linux iZwz96lx4pjqiy84w4hni7Z 5.10.134-17.3.al8.x86_64 #1 SMP Thu Oct 31 14:29:57 CST 2024 x86_64 User : www ( 1000) PHP Version : 8.0.26 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /www/wwwroot/sanxuany.cn/wp-content/themes/WebStack-1.1824/inc/ |
Upload File : |
<?php
if ( ! defined( 'ABSPATH' ) ) { exit; }
//图片上传
add_action('wp_ajax_nopriv_img_upload', 'io_img_upload');
add_action('wp_ajax_img_upload', 'io_img_upload');
function io_img_upload(){
$extArr = array("jpg", "png", "jpeg");
$file = $_FILES['files'];
if ( !empty( $file ) ) {
$basename = isset( $file['name'] ) ? $file['name'] : '';
$baseext = strtolower( pathinfo( $basename, PATHINFO_EXTENSION ) );
if ( ! in_array( $baseext, $extArr, true ) ) {
echo '{"status":4,"msg":"'.__('图片格式不支持','i_theme').'"}';
exit();
}
if ( empty( $file['tmp_name'] ) || ! is_uploaded_file( $file['tmp_name'] ) ) {
echo '{"status":4,"msg":"'.__('图片上传失败!','i_theme').'"}';
exit();
}
$imginfo = @getimagesize( $file['tmp_name'] );
if ( $imginfo === false ) {
echo '{"status":4,"msg":"'.__('无效的图片文件','i_theme').'"}';
exit();
}
$allowed_imagetypes = array( IMAGETYPE_JPEG, IMAGETYPE_PNG );
if ( ! in_array( $imginfo[2], $allowed_imagetypes, true ) ) {
echo '{"status":4,"msg":"'.__('无效的图片文件','i_theme').'"}';
exit();
}
$wp_upload_dir = wp_upload_dir(); // 获取上传目录信息
$dataname = date("YmdHis_").substr(md5(time()), 0, 8) . '.' . $baseext;
$filename = $wp_upload_dir['path'] . '/' . $dataname;
rename( $file['tmp_name'], $filename ); // 将上传的图片文件移动到上传目录
$attachment = array(
'guid' => $wp_upload_dir['url'] . '/' . $dataname, // 外部链接的 url
'post_mime_type' => $file['type'], // 文件 mime 类型
'post_title' => preg_replace( '/\.[^.]+$/', '', $basename ), // 附件标题,采用去除扩展名之后的文件名
'post_content' => '', // 文章内容,留空
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, $filename ); // 插入附件信息
if($attach_id != 0){
require_once( ABSPATH . 'wp-admin/includes/image.php' ); // 确保包含此文件,因为wp_generate_attachment_metadata()依赖于此文件。
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
wp_update_attachment_metadata( $attach_id, $attach_data ); // 生成附件的元数据,并更新数据库记录。
print_r(json_encode(array('status'=>1,'msg'=>__('图片添加成功','i_theme'),'data'=>array('id'=>$attach_id,'src'=>wp_get_attachment_url( $attach_id ),'title'=>$basename))));
exit();
}else{
echo '{"status":4,"msg":"'.__('图片上传失败!','i_theme').'"}';
exit();
}
}
}
//删除图片
add_action('wp_ajax_nopriv_img_remove', 'io_img_remove');
add_action('wp_ajax_img_remove', 'io_img_remove');
function io_img_remove(){
$attach_id = $_POST["id"];
if( empty($attach_id) ){
echo '{"status":3,"msg":"'.__('没有上传图像!','i_theme').'"}';
exit;
}
if ( false === wp_delete_attachment( $attach_id ) )
echo '{"status":4,"msg":"'.sprintf(__('图片 %s 删除失败!','i_theme'), $attach_id).'"}';
else
echo '{"status":1,"msg":"'.__('删除成功!','i_theme').'"}';
exit;
}
//提交文章
add_action('wp_ajax_nopriv_contribute_post', 'io_contribute');
add_action('wp_ajax_contribute_post', 'io_contribute');
function io_contribute(){
$delay = 40;
if( isset($_COOKIE["tougao"]) && ( time() - $_COOKIE["tougao"] ) < $delay ){
error('{"status":2,"msg":"'.sprintf(__('您投稿也太勤快了吧,%s秒后再试!','i_theme'), ($delay - ( time() - $_COOKIE["tougao"] )) ).'"}');
}
//表单变量初始化
$sites_link = isset( $_POST['tougao_sites_link'] ) ? trim(htmlspecialchars($_POST['tougao_sites_link'], ENT_QUOTES)) : '';
$sites_sescribe = isset( $_POST['tougao_sites_sescribe'] ) ? trim(htmlspecialchars($_POST['tougao_sites_sescribe'], ENT_QUOTES)) : '';
$title = isset( $_POST['tougao_title'] ) ? trim(htmlspecialchars($_POST['tougao_title'], ENT_QUOTES)) : '';
$category = isset( $_POST['tougao_cat'] ) ? $_POST['tougao_cat'] : '0';
$sites_ico = isset( $_POST['tougao_sites_ico'] ) ? trim(htmlspecialchars($_POST['tougao_sites_ico'], ENT_QUOTES)) : '';
$wechat_qr = isset( $_POST['tougao_wechat_qr'] ) ? trim(htmlspecialchars($_POST['tougao_wechat_qr'], ENT_QUOTES)) : '';
$content = isset( $_POST['tougao_content'] ) ? trim(htmlspecialchars($_POST['tougao_content'], ENT_QUOTES)) : '';
// 表单项数据验证
if ( $category == "0" ){
error('{"status":4,"msg":"'.__('请选择分类。','i_theme').'"}');
}
if ( !empty(get_term_children($category, 'favorites'))){
error('{"status":4,"msg":"'.__('不能选用父级分类目录。','i_theme').'"}');
}
if ( empty($sites_sescribe) || mb_strlen($sites_sescribe) > 50 ) {
error('{"status":4,"msg":"'.__('网站描叙必须填写,且长度不得超过50字。','i_theme').'"}');
}
if ( empty($sites_link) && empty($wechat_qr) ){
error('{"status":3,"msg":"'.__('网站链接和公众号二维码至少填一项。','i_theme').'"}');
}
elseif ( !empty($sites_link) && !preg_match('/http(s)?:\/\/[\w.]+[\w\/]*[\w.]*\??[\w=&\+\%]*/is', $sites_link)) {
error('{"status":4,"msg":"'.__('网站链接必须符合URL格式。','i_theme').'"}');
}
if ( empty($title) || mb_strlen($title) > 30 ) {
error('{"status":4,"msg":"'.__('网站名称必须填写,且长度不得超过30字。','i_theme').'"}');
}
//if ( empty($content) || mb_strlen($content) > 10000 || mb_strlen($content) < 6) {
// error('{"status":4,"msg":"内容必须填写,且长度不得超过10000字,不得少于6字。"}');
//}
$tougao = array(
'comment_status' => 'closed',
'ping_status' => 'closed',
//'post_author' => 1,//用于投稿的用户ID
'post_title' => $title,
'post_content' => $content,
'post_status' => 'pending',
'post_type' => 'sites',
//'tax_input' => array( 'favorites' => array($category) ) //游客不可用
);
// 将文章插入数据库
$status = wp_insert_post( $tougao );
if ($status != 0){
global $wpdb;
add_post_meta($status, '_sites_sescribe', $sites_sescribe);
add_post_meta($status, '_sites_link', $sites_link);
add_post_meta($status, '_sites_order', '0');
if( !empty($sites_ico))
add_post_meta($status, '_thumbnail', $sites_ico);
if( !empty($wechat_qr))
add_post_meta($status, '_wechat_qr', $wechat_qr);
wp_set_post_terms( $status, array($category), 'favorites'); //设置文章分类
setcookie("tougao", time(), time()+$delay+10);
error('{"status":1,"msg":"'.__('投稿成功!','i_theme').'"}');
}else{
error('{"status":4,"msg":"'.__('投稿失败!','i_theme').'"}');
}
}
function error($ErrMsg) {
echo $ErrMsg;
exit;
}