Advertisement
RodrigoFP

Upload de Imagens Múltiplas com resize e logo marca

Apr 16th, 2015
301
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.84 KB | None | 0 0
  1. Codigo criado por RodrigoFP
  2.  
  3. Algumas observações:
  4.  
  5. 1- baixe esse arquivo wideimage nesse endereço http://wideimage.sourceforge.net
  6.  
  7. 2- Campos abaixo são descartaveis são das minhas configurações
  8. include("config.php");
  9. session_start();
  10. include "functions.php";
  11. session_checker();
  12. $selectdados = mysql_query("SELECT * FROM `configuracoes` WHERE `funcoes`='dados'");
  13. $configuracoes = mysql_fetch_array($selectdados);
  14.  
  15. 3- function removeAcentos serve para criar decodificar o texto para minusculo e tirar acentos etc... para aplicar um novo nome na imagem coloque alguma variável que substitua o "funcionando" em $nome_da_imagem_alterada = 'funcionado'; pois ira renomear a imagem com o valor posto nessa variável podendo por o nome que você desejar que ira aplicar mais a frente a function removeAcentos
  16.  
  17. 4-  $epovawidth  $epovaheight = Largura e altura no caso no código esta puxando os valores da configurações que eu fiz no meu banco de dados no caso caso queria e so colocar valores numéricos.
  18.  
  19. 5- $logoepovaUrl pode ser substituído por um endereço de imagem ou uma imagem em qualquer tipo de formato.
  20.  
  21. 6- $logoepovaX e $logoepovay são as posições X e Y da logo coloque valores numéricos para posicionar a logo onde você quer.
  22.  
  23. <?php
  24. include("config.php");
  25. session_start();
  26. include "functio ans.php";
  27. session_checker();
  28. $selectdados = mysql_query("SELECT * FROM `configuracoes` WHERE `funcoes`='dados'");
  29. $configuracoes = mysql_fetch_array($selectdados);
  30. //SCRIPT DE CRIAÇÃO DE URLS AMIGAVEIS INICIO
  31. function removeAcentos($string, $slug = false) {
  32.     $string = strtolower($string);
  33.  
  34.     // Código ASCII das vogais
  35.     $ascii['a'] = range(224, 230);
  36.     $ascii['e'] = range(232, 235);
  37.     $ascii['i'] = range(236, 239);
  38.     $ascii['o'] = array_merge(range(242, 246), array(240, 248));
  39.     $ascii['u'] = range(249, 252);
  40.  
  41.     // Código ASCII dos outros caracteres
  42.     $ascii['b'] = array(223);
  43.     $ascii['c'] = array(231);
  44.     $ascii['d'] = array(208);
  45.     $ascii['n'] = array(241);
  46.     $ascii['y'] = array(253, 255);
  47.  
  48.     foreach ($ascii as $key=>$item) {
  49.         $acentos = '';
  50.         foreach ($item AS $codigo) $acentos .= chr($codigo);
  51.         $troca[$key] = '/['.$acentos.']/i';
  52.     }
  53.  
  54.     $string = preg_replace(array_values($troca), array_keys($troca), $string);
  55.  
  56.     // Slug?
  57.     if ($slug) {
  58.         // Troca tudo que não for letra ou número por um caractere ($slug)
  59.         $string = preg_replace('/[^a-z0-9]/i', $slug, $string);
  60.         // Tira os caracteres ($slug) repetidos
  61.         $string = preg_replace('/' . $slug . '{2,}/i', $slug, $string);
  62.         $string = trim($string, $slug);
  63.     }
  64.  
  65.     return $string;
  66. }
  67. //SCRIPT DE CRIAÇÃO DE URLS AMIGAVEIS INICIO ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  68. <html xmlns="http://www.w3.org/1999/xhtml">
  69. <head>
  70. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  71. <title>Upload de vários arquivos com PHP</title>
  72. </head>
  73.  
  74. <body>
  75. <h1>Upload de vários arquivos com PHP</h1>
  76.  
  77. <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data">
  78.  
  79. Numero de Geradores <input type="text" name="numeros" id="numeros" style="width:30px;" /> <input type="submit" value="Gerar" />
  80. </form>
  81.  
  82. <?php if ($_POST["numeros"]) { ?>
  83. <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data">
  84. <?php  $valor = $_POST["numeros"];
  85. for ($repeticao = 1; $repeticao <= $valor; $repeticao++) { ?>
  86. <p><input type="file" name="arquivo[]" /></p>
  87. <? } ?>
  88. <p><input type="submit" value="Enviar" /></p>
  89. </form><? } else { } ?>
  90. <?php
  91. // Numero de campos de upload
  92. $numeroCampos = count($_FILES["arquivo"]['name']);
  93.  
  94. // Tamanho máximo do arquivo (em bytes)
  95. $tamanho_maximo_permitido = 1000000;
  96.  
  97. // Tipos de formato disponiveis caso queira mudar para arquivos de media so mudar as extenções que vira upload de arquivos e os renomeia depois de adptar uns campos.
  98. $tipos_permitidos = array('image/jpg','image/jpeg','image/pjpeg','image/png','image/gif');
  99. $pasta = "imagens/animes_medias";
  100.  
  101.  
  102. // Numerador de Itens Adicionados
  103. $numeracao = 1;
  104.  
  105. for ($i = 0; $i < $numeroCampos; $i++) {
  106.  
  107. $caminho_temporario = $_FILES["arquivo"]["tmp_name"][$i];
  108. $nome_original_do_arquivo = $_FILES["arquivo"]['name'][$i];
  109. $nome_arquivo_tratado = $nome_original_do_arquivo;
  110. $tipo_arquivo = $_FILES["arquivo"]['type'][$i];
  111. $tamanho_do_arquivo = $_FILES["arquivo"]['size'][$i];;
  112.  
  113. // Aplica o renomeamento do item + o numero
  114. $nome_da_imagem_alterada = 'imagem_'.$numeracao++;
  115.  
  116. $nome_do_arquivo_original_alterado = $_FILES["arquivo"]['name'][$i];
  117. $nome_do_arquivo_original_alterado = str_replace('-','_',$nome_do_arquivo_original_alterado);
  118. /*Verifica o formato da imagem para tirar o nome original do arquivo e substituir ele pelo nome da seção mais mantendo o formato original.*/
  119. $arr = explode('.', $nome_do_arquivo_original_alterado);
  120. $arquivo_renomeado = strtolower(end($arr));
  121. if ($arquivo_renomeado == 'jpg' || $arquivo_renomeado == 'jpeg') {
  122.     $nome_final = str_replace($nome_do_arquivo_original_alterado,' ',$nome_da_imagem_alterada.'.jpg');
  123. } else if ($arquivo_renomeado == 'png') {
  124.     $nome_final = str_replace($nome_do_arquivo_original_alterado,' ',$nome_da_imagem_alterada.'.png');
  125. # Only if your version of GD includes GIF support
  126. } else if ($arquivo_renomeado == 'gif') {
  127.     $nome_final = str_replace($nome_do_arquivo_original_alterado,' ',$nome_da_imagem_alterada.'.gif');
  128. }
  129.  
  130.  
  131.     $caminho_final = $pasta. "/" . $nome_final;
  132.  
  133.     if (!empty($nome_original_do_arquivo)) {
  134.    
  135.     if(isset($nome_arquivo_tratado) && in_array($tipo_arquivo, $tipos_permitidos) &&  $tamanho_do_arquivo <= $tamanho_maximo_permitido){
  136.    
  137.    
  138.     $pega_arquivo = move_uploaded_file($caminho_temporario,$caminho_final);
  139. $info_imagem = pathinfo($caminho_final); // Resgatando extensão do arquivo recém-baixado
  140. $extencoesImagens = $info_imagem['extension'];
  141.    
  142.  
  143. // Muda o nome do arquivo e muda o formato da imagem para .jpg para aplicar o WideImage.
  144. $nova_imagem = removeAcentos($nome_da_imagem_alterada, '_').'_media'.'.jpg'; // Nome da imagem redimensionada
  145.    
  146. $selectdados = mysql_query("SELECT * FROM `configuracoes` WHERE `funcoes`='dados'");
  147. $redimensionar = mysql_fetch_array($selectdados);
  148. extract($redimensionar);
  149.    
  150. // Tratamento na Screen
  151. require_once 'wideimage/WideImage.php';
  152. $base = WideImage::load($caminho_final);
  153. $base = $base->resize($epovawidth, $epovaheight, 'fill');
  154. if ($logoepova == ativado) {
  155. $mascara = WideImage::load($logoepovaUrl);
  156. $result = $base->merge($mascara,$logoepovaX, $logoepovaY, 100);
  157. unlink($caminho_final);
  158. $result->saveToFile($pasta."/".$nova_imagem, 100); 
  159. }else {
  160. unlink($caminho_final);
  161. $base->saveToFile($pasta."/".$nova_imagem, 100); } 
  162.    
  163.    
  164. if(isset($pega_arquivo)){
  165.  
  166. echo 'Arquivo enviado com sucesso</br>';
  167.  
  168. } else { echo 'erro ao enviar</br>'; }
  169.    
  170. } else { echo 'Erro ao Enviar a Media</br>'; } } } ?>
  171. </body>
  172. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement