You are here

function feeds_imagegrabber_validate_download_size in Feeds Image Grabber 6

Same name and namespace in other branches
  1. 7 feeds_imagegrabber.module \feeds_imagegrabber_validate_download_size()

Validates the size of an file accessible through a http url.

Parameters

$file_url: A string specifying the formatted file url.

$max_size: Maximum size of the file to be downloaded.

$timeout: A float representing the maximum number of seconds the function call may take. The default is 10 seconds. If a timeout occurs, the retuen code is set to the FIG_HTTP_REQUEST_TIMEOUT constant.

$max_redirects: An integer representing how many times a redirect may be followed. Defaults to 3.

Return value

An integer code containing filesize in case the file exists and conforms to the size limit, -1 otherwise.

1 call to feeds_imagegrabber_validate_download_size()
feeds_imagegrabber_scrape_images in ./feeds_imagegrabber.module

File

./feeds_imagegrabber.module, line 371
Grabs image for each feed-item from their respective web pages and stores it in an image field. Requires Feeds module.

Code

function feeds_imagegrabber_validate_download_size($file_url, $max_size, $timeout = 10, $max_redirects = 3) {
  $options = array(
    'headers' => array(),
    'method' => 'HEAD',
    'data' => NULL,
    'max_redirects' => $max_redirects,
    'timeout' => $timeout,
  );
  $result = feeds_imagegrabber_http_request($file_url, $options);
  if ($result->code == 200 && isset($result->headers) && is_array($result->headers)) {

    //Bug #882992, some servers may return keys with different case.
    $headers = array_change_key_case($result->headers);
    if (isset($headers['content-length']) && $headers['content-length'] <= $max_size) {
      return $headers['content-length'];
    }
  }
  return -1;
}