返回介绍

download_url()

发布于 2017-09-10 22:14:36 字数 2991 浏览 1080 评论 0 收藏 0

download_url( string $url,  int $timeout = 300 )

Downloads a URL to a local temporary file using the WordPress HTTP Class.


description

Please note, That the calling function must unlink() the file.


参数

$url

(string) (Required) the URL of the file to download

$timeout

(int) (Optional) The timeout for the request to download the file default 300 seconds

Default value: 300


返回值

(mixed) WP_Error on failure, string Filename on success.


源代码

File: wp-admin/includes/file.php

function download_url( $url, $timeout = 300 ) {
	//WARNING: The file is not automatically deleted, The script must unlink() the file.
	if ( ! $url )
		return new WP_Error('http_no_url', __('Invalid URL Provided.'));

	$url_filename = basename( parse_url( $url, PHP_URL_PATH ) );

	$tmpfname = wp_tempnam( $url_filename );
	if ( ! $tmpfname )
		return new WP_Error('http_no_file', __('Could not create Temporary file.'));

	$response = wp_safe_remote_get( $url, array( 'timeout' => $timeout, 'stream' => true, 'filename' => $tmpfname ) );

	if ( is_wp_error( $response ) ) {
		unlink( $tmpfname );
		return $response;
	}

	if ( 200 != wp_remote_retrieve_response_code( $response ) ){
		unlink( $tmpfname );
		return new WP_Error( 'http_404', trim( wp_remote_retrieve_response_message( $response ) ) );
	}

	$content_md5 = wp_remote_retrieve_header( $response, 'content-md5' );
	if ( $content_md5 ) {
		$md5_check = verify_file_md5( $tmpfname, $content_md5 );
		if ( is_wp_error( $md5_check ) ) {
			unlink( $tmpfname );
			return $md5_check;
		}
	}

	return $tmpfname;
}

更新日志

Versiondescription
2.5.0Introduced.

相关函数

Uses

  • wp-admin/includes/file.php: wp_tempnam()
  • wp-admin/includes/file.php: verify_file_md5()
  • wp-includes/l10n.php: __()
  • wp-includes/http.php: wp_safe_remote_get()
  • wp-includes/http.php: wp_remote_retrieve_response_code()
  • wp-includes/http.php: wp_remote_retrieve_response_message()
  • wp-includes/http.php: wp_remote_retrieve_header()
  • wp-includes/load.php: is_wp_error()
  • wp-includes/class-wp-error.php: WP_Error::__construct()
  • Show 4 more uses Hide more uses

Used By

  • wp-admin/includes/class-wp-upgrader.php: WP_Upgrader::download_package()
  • wp-admin/includes/media.php: media_sideload_image()

User Contributed Notes

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文