Categoria: "PHP"
Como Fazer o Upload de Arquivos para um Banco de Dados MySQL Utilizando o PHP
Algumas aplicações web necessitam que os arquivos .jpg, .doc, .pdf e etc. sejam gravados no banco de dados MySql. Para isso, podemos fazer um script PHP que realize esta tarefa.
Para iniciar, vamos criar uma tabela para armazenar estes arquivos. Abaixo segue a estrutura da tabela:
- id: Identificador único para cada arquivo
- nome: O nome do arquivo
- tipo: Tipo do conteúdo
- tamanho: Tamanho do arquivo
- conteudo: O arquivo em si
Para a coluna conteudo, vamos usar o tipo de dados BLOB. BLOB é um objeto binário grande que pode conter uma quantidade variável de dados. O MySQL possui quatro tipos de dados BLOB:
- TINYBLOB
- BLOB
- MEDIUMBLOB
- LONGBLOB
O tipo BLOB é limitado a 64 kilobytes de armazenamento, enquanto que o MEDIUMBLOB possui capacidade de até até 16 megabytes. Iremos utilizar o tipo MEDIUMBLOB para que possamos armazenar arquivos maiores. Abaixo o SQL para a criação ta tabela:
PHP
CREATE TABLE upload ( | |
id INT NOT NULL AUTO_INCREMENT, | |
nome VARCHAR(30) NOT NULL, | |
tipo VARCHAR(30) NOT NULL, | |
tamanho INT NOT NULL, | |
conteudo MEDIUMBLOB NOT NULL, | |
PRIMARY KEY(id) | |
); |
Gerar Nuvem de Tags em PHP
Para gerar uma nuvem de tags usarei uma função chamada geraTags que recebe um array, onde cada posição deste array possui um valor tags:quantidade, e um valor máximo de tamanho de exibição no HTML, ou seja, quantas tags serão mostradas na nuvem.
Código da função geraTags:
PHP
<? | |
function geraTags ($tags,$max) { | |
$total = 0; | |
$maior = 0; | |
$retorno=""; | |
for ($i=0;$tags[$i];$i++) { | |
$exp = explode(":",$tags[$i]); | |
$tag[$i] = $exp[0]; | |
$qnt[$i] = $exp[1]; | |
$total = $total+$qnt[$i]; | |
| |
if ($qnt[$i] > $maior) $maior = $qnt[$i]; | |
} | |
for ($i=0;$tag[$i];$i++) { | |
$size = round($max*$qnt[$i]/$maior); | |
$menor = $max/3; | |
if ($size<$menor) $size=$menor; | |
$retorno.= "<span style='font-size:$size"."px'>$tag[$i]</span> "; | |
} | |
return $retorno; | |
} | |
?> |
Agora devemos preencher o array com os valores correspondentes, conforme mostra o código abaixo:
PHP
<? | |
$tags=array("php:5","java:6","html:2","programacao:4","javascript:3","humor:1","internet:1","fotos:3","linux:7","shell-script:3","livros:2","musica:2","videos:1","jogos:4","windows:5"); | |
?> |
O preenchimento do array também pode ser feito através de uma consulta em seu banco de dados, ou seja, o array também pode ser preenchido de forma dinâmica.
A chamada da função se dá da seguinte maneira:
PHP
echo geraTags($tags,30); |
Um exemplo de visualização da nuvem seria:
Espero que tenham gostado desta dica.
Migrando o Moodle para outro servidor
Esse post apresenta os procedimentos para migrar o Moodle manualmente de servidor. São procedimentos que garantem transferência sem perda de dados.
Para que a migração ocorra sem problemas, são necessários cinco passos:
1º Passo – Transferir Banco de Dados
Faça um backup da base de dados e recrie a base no novo servidor.
2º Passo – Transferir Aplicação
Transfira os arquivos de instalação do Moodle (a aplicação) para o novo servidor.
3º Passo – Transferir Arquivos
Transfira a base de arquivos para o novo servidor. O caminho onde se encontram esses arquivos está definido na variável $CFG->dataroot em config.php, como pode ser visto no exemplo abaixo.
PHP
$CFG->dataroot = '/xx/xx/xx/xx' |
O endereço em que os arquivos serão transferidos no novo servidor deverá ter promissão de escrita. Sem isso, não será possível fazer o upload.
4 º Passo – Atualizar a Configuração
Altere os dados de configuração do novo servidor do Moodle. Isso deve ser feito no arquivo config.php que fica na pasta raiz da . Atualize os parâmetros:
PHP
$CFG->dbhost = 'ip ou host da base de dados do novo servidor'; | |
$CFG->dbname = 'nome do banco do novo servidor'; | |
$CFG->dbuser = 'usuário do banco do novo servidor'; | |
$CFG->dbpass = 'senha do banco do novo servidor'; | |
$CFG->wwwroot = 'endereço de acesso no novo servidor'; | |
$CFG->dirroot = 'endereço de arquivo de instalação do novo servidor'; | |
$CFG->dataroot = 'endereço de arquivo dos cursos no novo servidor'; |
5º Passo – Atualizar novo URL (endereço de domínio) do Moodle nos textos em banco de dados
Esse passo é fundamental após a migração do Moodle. Após a migração, caso houver mudança de endereço http de acesso ao Moodle, é necessário atualizar todos os textos inseridos no banco de dados que contenham o endereço antigo para o novo o endereço.
Para fazer isso, basta seguir os seguinte passos:
a) Acesse o Moodle com a senha do administrador;
b) Acesse o seguinte endereço:
ex: http://enderecomoodle/admin/replace.php
c) Preencha o formulário.
No primeiro campo coloque o endereço antigo do moodle.
ex: http://www.moodleantigo.com
No segundo campo o novo endereço.
ex: http://www.moodlenovo.com .
d) Clique no botão Yes, do it now para processar a atualização. Feito isso, todos os links para imagens e arquivos armazenados no banco de dados serão atualizados para apontar para a nova instalação do Moodle.
Isso resolve o problema de links que não funcionam ou imagens que desaparecem após a migração. Também soluciona os casos em que se retorna a tela de login do Moodle antigo quando o usuário tenta acessar um arquivo ou imagem.
Finalizando esses passos, basta acessar o endereço do novo servidor que tudo estará funcionando.
A migração manual é uma das melhores alternativas para transferir cursos do Moodle sem erro ou falha. Isso garante a transferência total dos arquivos e registros da base de dados. É mais eficiente que a transferência que faz backup do curso e recria no novo servidor do Moodle.
PHP QRCode Generator
Para quem não quer instalar o pacote PEAR em seu site e ter o trabalho de programar a geração de QR-code's, existe uma solução prática e fácil. É PHP QRCode Generator.
Este serviço é disponibilizado por Bruno PorKaria e é bem interessante, gerando o QR-code em PNG ou JPG, além de trazer outras configurações. Além disso, ele já mostra o código PHP utilizado para gerar o QR-code.
Eu recomendo sua utilização :-)
Gerando QR-code com PHP
Neste post mostrarei como utilizar uma pacote PEAR (Image_QRCode) para gerar QrCode através do PHP.
Para começar a gerar nosso QR-code, precisamos instalar o pacote PEAR. Como fazemos isso? Simples. É só seguir a explicação abaixo:
Faça o download do pacote, que está disponível página de download do projeto, e baixe o arquivo compactado. Depois de baixar é só descompactar o pacote, que terá a seguinte estrutura:
Copie a pasta e cole-a no diretório em que está o seu site PHP.
No diretório data temos os arquivos necessários para geração do QR-code, assim como na pasta image. Em doc temos um arquivo com exemplos práticos e em tests temos uma página com testes de geração do QR-code. Mas o principal é a classe que está no arquivo QRCode.php. É lá que a "mágica" acontece
Colocando para Funcionar
Depois de fazer o passo acima, basta criar um arquivo.php e fazer a criação do QR-code que você deseja, conforme o exemplo abaixo:
PHP
<?php | |
require_once("Image/QRCode.php"); | |
| |
$options = array( | |
"image_type" => "png", | |
"module_size" => 3, | |
"error_correct" => "H", | |
"version" => 5, | |
"output_type" => "display" | |
); | |
| |
$qr = new Image_QRCode(); | |
$qrcode = $qr->makeCode("Emilio Mario Wieczorek /n | |
MBA em Gestão de TI /n | |
Site: http://www.wieczorek.com.br",$options); | |
?> |
Caso apareça o erro Warning: Cannot modify header information – headers already sent by ... verifique se não há espaços em branco antes do inicio do bloco de código PHP, isso pode causar esse erro.
No mais é isso. Qualquer dúvida, dê uma olhada no arquivo QRCode.php para você entender como funciona, ou então entre no site do projeto e veja a documentação e os exemplos que estão lá disponíveis, além, é claro da documentação que já vem no arquivo .tgz