PHP Download
Publicado por Fábio Berbert de Paula 14/11/2002
[ Hits: 9.832 ]
Homepage: https://fabio.automatizando.dev
Contador de downloads em PHP, que armazena o número de downloads de um arquivo do seu site numa tabela do banco de dados MySQL.
<? /* Criando ambiente no MySQL: mysql> create database phpdownload; mysql> connect phpdownload; mysql> CREATE TABLE contador ( -> arquivo VARCHAR(100) PRIMARY KEY NOT NULL, -> hits INT DEFAULT 1 -> ); mysql> GRANT ALL PRIVILEGES ON phpdownload.* TO phpdown@localhost -> IDENTIFIED BY 'uaubaby' WITH GRANT OPTION; mysql> flush privileges; */ chdir('./publico'); // entrar no diretório público if (!is_file($arquivo)) { // se o arquivo não é arquivo ... echo "Erro: arquivo $file não encontrado !"; exit; // ... aborte o programa } $con = mysql_connect('localhost','phpdown','uaubaby'); mysql_select_db('phpdownload'); $consulta = "SELECT arquivo,hits FROM contador WHERE arquivo='$arquivo'"; $res = mysql_query($consulta,$con); /* certificar se o arquivo já foi clicado alguma vez. Se o arquivo ainda não consta em nossa tabela, vamos inserir um novo registro, caso contrário vamos somar um hit ao registro existente */ if ($saida = mysql_fetch_array($res)) { // registro existe $hit = ++$saida[1]; // some 1 (um) ao número de cliques $update = "UPDATE contador SET hits=$hit WHERE arquivo='$arquivo'"; mysql_query($update,$con); // atualize o registro } else { $insert = "INSERT INTO contador (arquivo) VALUES ('$arquivo')"; mysql_query($insert,$con); // insira o novo arquivo na tabela. O valor padrão // de hit é 1 (um) } $tamanho = filesize($arquivo); // pega o tamanho do arquivo em bytes // enviar os cabeçalhos HTTP para o browser header("Content-Type: application/save"); header("Content-Length: $tamanho"); header("Content-Disposition: attachment; filename=$arquivo"); header("Content-Transfer-Encoding: binary"); // abrir e enviar o arquivo $fp = fopen("$arquivo", "r"); fpassthru($fp); fclose($fp); ?>
Cria gráficos para monitoramento de consumo de CPU e Memória a partir de arquivos [Atualização].
WebUI: framework para criação de interfaces para Web
Leitura de planilhas com PhpSpreadsheet
O que é o THP na configuração de RAM do Linux e quando desabilitá-lo
Comparação entre os escalonadores BFQ e MQ-Deadline (acesso a disco) no Arch e Debian
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Deixando o Plasma6 mais fluido no Linux
Como unir duas coleções de ROMs preservando as versões traduzidas (sem duplicatas)
Isso acontece com vcs também? (7)
Problema com audio apos upgrade (10)
Instalação automatizada do Debian 12 em UEFI (2)