Renomear arquivos por url Remota com metodo Curl

<?php

// Script desenvolvido por Rodrigo Ferreira facebook.com/ryumaruwebanimes
/*
Esse script permite fazer download e renomear arquivos por url Remota por metodo Curl aplicação deste script e devastadora você podera usar ele para varias url menos no caso
de servidores de download normais uma vez que para isso devera ter um retorno do valor real passando pelo sistema de protect link do servidor mais funciona com qualquer url
de link direto.
*/

// Tempo de execução do script infinito
set_time_limit(0);

// Função para forçar download de qualquer arquivo
function download($file,$tamanhoGeral){

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-disposition: attachment; filename="ryumaru_exemplo_uol.mp4"');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
header('Pragma: public');
$size = get_size($file);
header('Content-Length: '.$size);

$i = 0;
while($i<=$size){
//Output do da UOL
tamanhoUOL($file,(($i==0)?$i:$i+1),((($i+$tamanhoGeral)>$size)?$size:$i+$tamanhoGeral));
$i = ($i+$tamanhoGeral);
}

}

// Função de chamada de retorno para CURLOPT_WRITEFUNCTION, Isto é o que imprime o pedaço
function downloadForcado($ch, $str) {
print($str);
return strlen($str);
}

// Função para obter um intervalo de bytes do arquivo remoto
function tamanhoUOL($file,$start,$end){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $file);
curl_setopt($ch, CURLOPT_RANGE, $start.'-'.$end);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'downloadForcado');
$result = curl_exec($ch);
curl_close($ch);
}

// Pega o Tamanho total do arquivo
function get_size($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
$size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
return intval($size);
}

 

// Chamando a função para funcionammento
$file = 'url de download aqui';

// Tamanho maximo do arquivo do lado do $file
download($file,314572800);
?>

Site Oficial: Clique aqui!

  • 0 Usuários acharam útil
Esta resposta lhe foi útil?

Artigos Relacionados

Utilizando SMTP

O que é SMTP e por que usá-lo ?O SMTP (Simple Mail Transfer Protocol) é um protocolo que permite,...

Habilitado Serviço POP3 e SMTP no Gmail

Vídeo Explicativo: Para aqueles que não perceberam, o acesso POP3 do Gmail foi...

O que é e como funciona um Domínio Adicional?

OBS: Antes do tutorial vale lembrar que precisa adquirir um plano da Gubax que aceite domínios...

Trabalhando com htaccess

Deny/Allow1. Bloqueia - Libera2. Exemplos: Libera ou bloqueia acesso a uma determinada faixa de...

Redirecionamento

Redirecionamento com frames Quando você quiser fazer um redirecionamento mantendo o endereço do...