php


Forçar download de arquivos com PHP

Postado em 11/12/2013 por Rogerio - Categoria: Internet - Tags: download php forçar

Essa é uma dúvida um pouco comum quando temos um sistema que envia arquivos para download e você não quer que o arquivo seja aberto pelo navegador ou acessado diretamente como por exemplo http://www.seusite.com.br/downloads/arquivo.zip.

O script simples abaixo mostra como fazer para, além de forçar o download, permitir que você faça um contador de downloads do arquivo, proteger o nome real do arquivo ou protegê-lo por uma sessão (apenas usuários logados).

Você pode salvar o script abaixo como getdownload.php por exemplo.
 

// Define o tempo máximo de execução igual a 0 para as conexões lentas.
set_time_limit(0);

// Aqui você faz as validações, pega os dados do banco de dados, etc...

$arquivoNome = 'imagem.jpg'; //nome do arquivo que será baixado.
$arquivoLocal = '/pasta/do/arquivo/'.$arquivoNome; //caminho absoluto do arquivo

//Verifica se o arquivo não existe
if (!file_exists($arquivoLocal)) {
  //Exiba uma mensagem de erro caso ele não exista
  exit;
}

//Aqui você pode contabilizar o download.

//Define o novo nome do arquivo que o usuário vai salvar.
$novoNome = 'imagem_nova.jpg';
 
// Configuramos os headers que serão enviados para o browser.
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="'.$novoNome.'"');
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($aquivoNome));
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Expires: 0');

//Envia o arquivo para o cliente
readfile($aquivoNome);


 




Executar programas windows remotamente com Apache/PHP

Postado em 26/06/2008 por Rogerio - Categoria: Dicas Linux - Tags: apache php remoto

start Notepad.exe minimized in the background:

$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("notepad.exe", 7, false);

start a shell command invisible in the background:

$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("cmd /C dir /S %windir%", 0, false);

start MSPaint maximized and wait for you to close it before continuing the script:

$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("mspaint.exe", 3, true);


 




  Página de 1  


Runtime Sistemas ® - Jaraguá do Sul - SC - 47 9196-3060