我正在尝试使用自定义插件中的 wp 函数
wp_upload_dir()
上传文件,我需要在 WordPress 默认上传文件夹中上传文件,而无需单独的 upload.php 文件。我不确定是否可以在没有单独的 PHP 文件的情况下执行 Ajax。
查看我的总文件
upload.php
$upload_dir = wp_upload_dir();
print_r($upload_dir);
$user_dir_name = $upload_dir['basedir'].'/mg_gallery';
if( ! file_exists( $user_dir_name ) ) {
if ( wp_mkdir_p( $user_dir_name ) ) {
$is_successful = true;
} else {
$error_msg = "Sorry Couldn't create directory. ";
$is_successful = false;
}
}
我正在使用 Ajax 提交表单来上传文件
async function saveFile() {
let formData = new FormData();
formData.append("file", fileupload.files[0]);
await fetch('<?php echo plugin_dir_url( __FILE__ ); ?>/upload.php', {method: "POST", body: formData});
alert("done");
}
除此之外,当我选择手动设置的文件夹路径时,一切正常。非常感谢任何帮助。
您应该知道的第一件事是 WordPress 功能不会自动包含在自定义 php 文件中。
您必须包含或需要 WordPress 功能。
require_once("../../../../wp-load.php");
或
require_once $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php';