如何在wordpress中使用move_uploaded_file()

时间:2013-09-24 09:13:27

标签: php wordpress

我想在我的插件中创建的名为upload的文件夹中上传图片。我正在使用

<input type="file" name="upload_captcha_background" id="upload_captcha_background" />

plz建议我如何在uplaod文件夹中上传图片。

2 个答案:

答案 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