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)
推荐的方法是使用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的秘密本机函数上载文件
| 归档时间: |
|
| 查看次数: |
9947 次 |
| 最近记录: |