我想在我的插件中创建的名为upload的文件夹中上传图片。我正在使用
<input type="file" name="upload_captcha_background" id="upload_captcha_background" />
plz建议我如何在uplaod文件夹中上传图片。
答案 0 :(得分:4)
如果您要从插件上传,那么您需要查看 wp_handle_upload如果您想更改upload文件夹的目录,那么您应该查看本教程:Smarter handling of WordPress plugin uploads基本上wp_handle_upload使用从wp upload dir返回的路径,您可以按照教程i覆盖该路径链接。希望它有所帮助
修改强>
这里有一些示例代码:
if ( ! function_exists( 'wp_handle_upload' ) ) require_once( ABSPATH . 'wp-admin/includes/file.php' );
$uploadedfile = $_FILES['upload_captcha_background'];
$upload_overrides = array( 'test_form' => false );
add_filter('upload_dir', 'my_upload_dir');
$movefile = wp_handle_upload( $uploadedfile, $upload_overrides );
remove_filter('upload_dir', 'my_upload_dir');
if ( $movefile ) {
echo "File is valid, and was successfully uploaded.\n";
var_dump( $movefile);
} else {
echo "Possible file upload attack!\n";
}
function my_upload_dir($upload) {
$upload['subdir'] = '/sub-dir-to-use' . $upload['subdir'];
$upload['path'] = $upload['basedir'] . $upload['subdir'];
$upload['url'] = $upload['baseurl'] . $upload['subdir'];
return $upload;
}
答案 1 :(得分:0)
在代码文件中,添加以下行
$attachment_id = media_handle_upload('upload_captcha_background', $post->ID);
形式:
<input type="file" name="upload_captcha_background" id="upload_captcha_background" />
有关media_handle_upload()
的更多详情,请查看documentation。