Mostrando postagens com marcador arquivo. Mostrar todas as postagens
Mostrando postagens com marcador arquivo. Mostrar todas as postagens

Função para forçar download de arquivos em PHP

Existe alguns arquivos com certas extensões que tem uma exceção no procedimento de download. Neste exemplo abaixo o download é forçado para todos tipos de extensões.

Espero que este código seja útil para você assim como é para mim.
Se possível deixe seu cometário avaliando.

 <?php function downloadExcecao ($arquivo,$novoNome){  
     $destino ="c:/www/site/temp/$novoNome"; //diretório desde a raíz  
         copy($arquivo, $destino);  
         print("<script>var pg = window.open('www.site.com.br/temp/$novoNome','', 'width=200, height=1, top=0, left=0'); if(!pg){alert('O Bloqueador de Pop-up est\xE1 ativado, para fazer download de arquivos, na faixa amarela acima, clique no bot\xE3o OP\xC7\xD5ES, depois clique em PERMITIR POPUPS, ou DESBLOQUEAR.'); history.back(1);}else{history.back(1);}</script>");  
         exit;  
 }  
 function downloadArquivo($nomeArquivo){  
     $arquivo = "c:/www/site/img/".$nomeArquivo; /// endereço do arquivo que será feito download  
    $novoNome = "novoNomeArquivo.extencao"; ///substituir espaço por "_" caso necessário e não usar acento///  
     if(file_exists($arquivo)){ // faz o teste se o arquivo realmente existe antes de forçar o download do mesmo//  
 /////pegar extenção////////////  
 list($width, $height, $type, $attr) = getimagesize($arquivo);  
 $ext = image_type_to_extension($type);  
 ///////////////////////////  
       switch($ext){ // verifica a extensão do arquivo para pegar o tipo  
         case "pdf": $tipo="application/pdf"; break;  
         case "exe": //$tipo="application/octet-stream"; break;  
         case "zip": $tipo="application/zip"; break;  
         case "rar": $tipo="application/rar"; break;  
         case "doc": $tipo="application/msword"; break;  
         case "docx": $tipo="application/msword"; break;  
         case "odt": $tipo="application/vnd.oasis.opendocument.text"; break;  
         case "xls": $tipo="application/vnd.ms-excel"; break;  
         case "ppt": $tipo="application/vnd.ms-powerpoint"; break;  
         case "gif": $tipo="image/gif"; break;  
         case "png": $tipo="image/png"; break;  
         case "jpeg": $tipo="image/jpeg"; break;  
         case "mp3": $tipo="audio/mpeg"; break;  
         case "php": // deixar vazio por seurança  
         case "htm": // deixar vazio por seurança  
         case "html": // deixar vazio por seurança  
         case "asp": // deixar vazio por seurança  
         }  
         if(isset($tipo)){  
           if($ext=="doc" || $ext=="docx" || $ext=="odt"){ /// caso o arquivo seja com essas extensões então força download de outra forma//////  
           downloadExcecao($arquivo,$novoNome);  
           }else{  
             // Configuramos os headers que serão enviados para o browser  
             header('Content-Description: File Transfer');  
             header("Content-Type: ".$tipo);  
             header('Content-Disposition: attachment; filename="'.$novoNome.'"');  
             header('Content-Type: application/octet-stream');  
             header('Content-Transfer-Encoding: binary');  
             header('Content-Length: ' . filesize($arquivo));  
             header('Cache-Control: must-revalidate, post-check=0, pre-check=0');  
             header('Pragma: public');  
             header('Expires: 0');  
             // Envia o arquivo para o cliente  
             ob_end_clean();  
             flush();  
             readfile($arquivo);  
           }  
         }else{  
           print "<script>alert('Não é possível fazer o download deste arquivo, tente novamente mais tarde.');</script>";  
         }  
         exit; // aborta pós-ações  
         }  
       }  
 ?>  

Função php para copia arquivo de um servidor para outro

Está é uma função php difícil de ser encontrada na internet.
Espero que este código seja útil para você assim como é para mim.
Se possível deixe seu cometário avaliando.

 <?php  
 /////////////////////////////////////////////////////////////////////  
 ///url de exemplo passado para está função //////  
 http://www.siteondeestáafunção.com.br?url_arquivo=endereço_virtual_do_arquivo_a_ser_copiado  
 ////função que ficará no servidor de destino onde arquivo será guardado///////  
 function copiarArquivoServidorExterno(){  
 ///remove caracteres especiais que aparecem na url//////  
 $urlArquivo = str_replace(array('%26','%3F','%20'), array('&','?',' '), $_GET['url_arquivo']);  
 ////////////////////////////////////////////  
 ////pega apenas o endereço do arquivo passado por parâmetro que vem junto com o endereço do servidor onde está a função/////  
 $arquivo = explode('&nome_arquivo=', $urlArquivo);  
 /////pegar extenção do arquivo//////  
  $extensaoArquivo = explode('.', $arquivo[0]);  
  $c = count($extensaoArquivo);  
 $extensaoArquivo = strtolower($extensaoArquivo[$c - 1]);  
 ////////////////////////////////  
 ///nome novo do arquivo copiado///  
  $nomeArquivo = "nomedoarquivodestino".".".$extensaoArquivo;  
 ////copia do servidor externo para um arquivo chamado temp dentro do servidor de destino///  
 $destino = c:/www/teste/temp/".$nomeArquivo; //tem que ser endereço completo desde a raiz do diretório////  
 $orig = fopen($arquivo[0], "r");  
 $dest = fopen($destino, "w");  
 while (!feof($orig)) {  
 $line = fread ($orig, 1024);  
 fwrite($dest, $line);  
 }  
 fclose($orig);  
 fclose($dest);  
 ///////////////////////////////  
 ///retorna o endereço do arquivo no servidor de destino/////  
 return $dest;  
 }  
 ?>