在Wordpress中使用PHP进行文件上传

p.l*_*uck 1 html php forms wordpress file-upload

我正在尝试从wordpress页面的前端上传文件,以发送到wp-content中的后端wordpress目录.我无法弄清楚为什么文件没有出现在后端文件夹'uploads'中,这就是$ target_dir的设置.这是我在一个页面上的HTML表单.

<form action="http://www.aeroex.co.uk/php-upload/" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

上述表单的表单操作页面www.aeroex.co.uk/php-upload/包含以下PHP代码:

<?php
$target_dir = "http://www.aeroex.co.uk/home3/dy/public_html/wp-content/uploads";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
} else {
    echo "File is not an image.";
    $uploadOk = 0;
}
}
?>
Run Code Online (Sandbox Code Playgroud)

Kal*_*mah 6

推荐的方法是使用wp_handle_upload()函数.如果要将文件添加到媒体库,可以将其与wp_insert_attachment()一起使用 .

第一个函数wp_handle_upload()执行:

处理WordPress中的PHP上传,清理文件名,检查mime类型的扩展名,以及将文件移动到uploads目录中的相应目录.

一个来自WordPress网站的例子,有一些变化

if ( ! function_exists( 'wp_handle_upload' ) ) {
    require_once( ABSPATH . 'wp-admin/includes/file.php' );
}

$uploadedfile = $_FILES['file'];

/* You can use wp_check_filetype() function to check the
 file type and go on wit the upload or stop it.*/

$movefile = wp_handle_upload( $uploadedfile);

if ( $movefile && !isset( $movefile['error'] ) ) {
    echo "File is valid, and was successfully uploaded.\n";
    var_dump( $movefile);
} else {
    /**
     * Error generated by _wp_handle_upload()
     * @see _wp_handle_upload() in wp-admin/includes/file.php
     */
    echo $movefile['error'];
}
Run Code Online (Sandbox Code Playgroud)

或者,你可以只使用wp_upload_dir()来获取上传目录.

有关使用本机WordPress函数进行上载的更多信息,请查看本文: 如何使用WordPress的秘密本机函数上载文件