Jump to content


Photo

Upload E Thumbnail - Você Consegue Alterar Esse Script ?


  • Faça o login para participar
3 replies to this topic

#1 Arruda

Arruda

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 05/04/2007, 12:22

Olá pessoal, preciso de ajuda!

Seguem abaixo dois scripts perfeitos para quem precisar.

Porém,

o primeiro script: Faz o upload de uma imagem e cria um Thumbnail para ela desde que o arquivo enviado seja JPG.

o segundo script: Faz o upload de qualquer imagem (JPG, GIF, BMP), dá um novo nome ao arquivo para que não haja como uma outra pessoa upar um arquivo com o mesmo nome e sobrepor o outro, verifica se a imagem não ultrapassa os limites que damos a ela de altura, largura e peso, caso algo não esteja de acordo ele retorna uma mensagem de erro que nós mesmos informamos ao usuário de forma que ele entenda.

o que eu preciso: Que o script aceite JPG, GIF, BMP, verifique se a imagem não ultrapassa os limites de altura, largura e peso e crie o Thumbnail.

Ou seja um script que una as funções desses dois.


Como eu não entendo de PHP preciso da sua ajuda para unir a função de Thumbnail do 1º script no 2º script ou vice-versa.

Acho o segundo script melhor porque ele caso o arquivo esteja fora dos padrões ele imprime o motivo do não assustando o usuário como mensagens que parecem ser de erro de programação como no primeiro script (isso queima o site), se puderem acrescentar a criação de Thumbnail à ele é melhor ainda pra mim, do que acrescentar as funções dele no primeiro.

1º script

<?$size_h = 80;    $size_w = 120;    $filedir = 'fotos/'; //diretorio da foto    $thumbdir = 'fotos/'; //diretorio do thumbnail    $prefix = 'tbn_'; //prefixo da thumbnail    $maxfile = '2000000';    $mode = '0666';		preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);        $userfile_name = $_FILES['image']['name'];    $userfile_tmp = $_FILES['image']['tmp_name'];    $userfile_size = $_FILES['image']['size'];    $userfile_type = $_FILES['image']['type'];            if (isset($_FILES['image']['name']))    {        $prod_img = $filedir.$userfile_name;        $prod_img_thumb = $thumbdir.$prefix.$userfile_name;        move_uploaded_file($userfile_tmp, $prod_img);        chmod ($prod_img, octdec($mode));                $sizes = getimagesize($prod_img);        $aspect_ratio = $sizes[1]/$sizes[0];        if ($sizes[1] <= $size)        {            $new_width = $sizes[0];            $new_height = $sizes[1];        }else{            $new_height = $size_h;            $new_width = $size_w;//para redimensionar de acordo com a altura, comente a linha acima e descomente a abaixo            //$new_width = abs($new_height/$aspect_ratio);        }        $destimg=ImageCreateTrueColor($new_width,$new_height)            or die('Erro ao criar imagem');        $srcimg=ImageCreateFromJPEG($prod_img)            or die('Erro ao abrir arquivo fonte');        if(function_exists('imagecopyresampled'))        {            imagecopyresampled($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg))or die('Erro ao redimensionar: x001');}else{            Imagecopyresized($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg))or die('Erro ao redimensionar: x002');}ImageJPEG($destimg,$prod_img_thumb,90)or die('Erro ao salvar');imagedestroy($destimg);        }?>


2º script

<?$erro = $config = array();// Prepara a variável do arquivo$arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;// Tamanho máximo do arquivo (em bytes)$config["tamanho"] = 3000000;// Largura máxima (pixels)$config["largura"] = 10000000;// Altura máxima (pixels)$config["altura"] = 10000000;// Formulário postado... executa as açõesif($arquivo){// Verifica se o mime-type do arquivo é de imagemif(!eregi("^image\/(pjpeg|jpeg|gif|bmp)$", $arquivo["type"])){$erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg,bmp ou gif. Envie outro arquivo";}else{// Verifica tamanho do arquivoif($arquivo["size"] > $config["tamanho"]){$erro[] = "Arquivo em tamanho muito grande!A imagem deve ser de no máximo " . $config["tamanho"] . " bytes.Envie outro arquivo";}// Para verificar as dimensões da imagem$tamanhos = getimagesize($arquivo["tmp_name"]);// Verifica larguraif($tamanhos[0] > $config["largura"]){$erro[] = "Largura da imagem não deveultrapassar " . $config["largura"] . " pixels";}// Verifica alturaif($tamanhos[1] > $config["altura"]){$erro[] = "Altura da imagem não deveultrapassar " . $config["altura"] . " pixels";}}// Imprime as mensagens de erroif(sizeof($erro)){foreach($erro as $err){echo " - " . $err . "<BR>";}echo "<a href=\"foto.html\">Fazer Upload de Outra Imagem</a>";}// Verificação de dados OK, nenhum erro ocorrido, executa então o upload...else{// Pega extensão do arquivopreg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);// Gera um nome único para a imagem$imagem_nome = md5(uniqid(time())) . "." . $ext[1];// Caminho de onde a imagem ficará$imagem_dir = "fotos/" . $imagem_nome;// Faz o upload da imagemmove_uploaded_file($arquivo["tmp_name"], $imagem_dir);echo "Sua imagem foi enviada com sucesso!,$imagem_nome";}}?>

Preciso muito dessa ajuda,

espero ter sido claro quanto o que eu preciso.

meu e-mail: andre-arruda@hotmail.com

Que a Paz de Deus seja com vocês!

#2 kakaroto1500

kakaroto1500

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Não informado

Posted 07/04/2007, 17:12

ME cadastre para responder sua duvida

Eu postei aqui pq assim eu ajudo vc e os pessoas

que estao largando o asp :assobio:

formulario html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR...nsitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
<style type="text/css">
*{
margin:0em;
padding:0em;
font:12px Verdana, Arial, Helvetica, sans-serif;
list-style:none;
}
fieldset {
border:0.1em solid #CCC;
width:50%;
height:50%;
margin:1em;
}

input {
margin: 0.25em 1.75em;
}

</style>
</head>

<body>
<fieldset>
<legend>UPLOAD de IMAGENS </legend>


<form action="up.php" method="post" enctype="multipart/form-data">
<ul>
<li>Envie sua imagem:<input type="file" name="imagem" size="25" /></li>
<li><input type="submit" value="enviar" /> </li>
</ul>

</form>
</fieldset>
</body>
</html>


/**************************/
up.php



<?
$largura_max=800; /*largura maxima da imagem*/
$altura_max=860; /*altura maxima da imagema*/
$dir = realpath ("C:/wamp/www/upload/imagem");//caminho no caso de um window


$imagem = $_FILES['imagem']['name']; /*pegando p file uploadeado*/

$tmp = $_FILES['imagem']['tmp_name']; /*pegando o temp da imagem*/



list($largura,$altura,$tipo)=getimagesize($tmp);
/*criar variaveis como ser fosse array aqui e o pego largura e altura e tipo de imagem
se e um jpg ou gif olhe o poderoso manual do php sobre getimagesize */


if($tipo > 3 ) {
echo "formato de arquivo invalido eu so aceito trabalhar jpg ou gif";
print'<a href=java script:history.back() >'.'<p class="aviso">clique aqui para voltar...</p>'.'</a>';
/*aqui e o vejo o que para mim jpg ou gif */
exit();
}
if($largura > $largura_max || $altura > $altura_max ){
echo "sua iamgem e maior que o permitido ";
print'<a href=java script:history.back() >'.'<p class="aviso">clique aqui para voltar...</p>'.'</a>';
/*vejo a largura ou altura la em cima que veio para mim lembrando la em cima eu coloquei
o maximo */
exit();
}

$imagem2 =rand(5,$imagem);
/*radonizar geral novo new de imagem direito,ja que tu proposta que ser existe gere uma new name */


$caminho=$dir.'\\'.$imagem2.$imagem;
/*endereço com telefone para onde vai a imagem */

//caminho com nome da imagem e local para guardar
if(move_uploaded_file($_FILES['imagem']['tmp_name'],$caminho)) {
echo "sua imagem foi uploadeada ";
//aqui nada especial so movo a tmp_name dando caminho

}

if($tipo > 1) {

$thundebal = imagecreatefromjpeg($caminho);
/*se a img for to tipo jpeg criar imagecreatefromjpeg*/
}
else {
$thundebal = imagecreatefromgif($caminho);
/*se a img for to tipo gif criar imagecreatefromgif*/
}
$Thundeball = imagecreatetruecolor(75, 75);
// diminuir a imagem preservado as cores e diminiudo a imagem tamanho 75x75

imagecopyresampled($Thundeball, $thundebal, 0, 0, 0, 0, 75, 75, $largura,$altura);
//sample da imagem com os tamanho 75 x75 -> esse dois aqui e o novo tamanhao da imagem


if($tipo > 1) {
imagejpeg($Thundeball,$dir.'/pequena_'.$imagem2.$imagem);
/*conforme no tipo eu gero o thundball com a extensao pequena imagem mudada*/
}
else {
imagegif($Thundeball,$dir.'/pequena_'.$imagem2.$imagem);
}



?>


valeu Boa PAscoa para vc Andre
qual coisa sabe como me achar

kakaroto
http://www.obsidian.com.br
web master :assobio:

Attached Files



#3 Arruda

Arruda

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 07/04/2007, 21:17

ME cadastre para responder sua duvida

Eu postei aqui pq assim eu ajudo vc e os pessoas

que estao largando o asp :assobio:

formulario html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR...nsitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
<style type="text/css">
*{
margin:0em;
padding:0em;
font:12px Verdana, Arial, Helvetica, sans-serif;
list-style:none;
}
fieldset {
border:0.1em solid #CCC;
width:50%;
height:50%;
margin:1em;
}

input {
margin: 0.25em 1.75em;
}

</style>
</head>

<body>
<fieldset>
<legend>UPLOAD de IMAGENS </legend>


<form action="up.php" method="post" enctype="multipart/form-data">
<ul>
<li>Envie sua imagem:<input type="file" name="imagem" size="25" /></li>
<li><input type="submit" value="enviar" /> </li>
</ul>

</form>
</fieldset>
</body>
</html>


/**************************/
up.php



<?
$largura_max=800; /*largura maxima da imagem*/
$altura_max=860; /*altura maxima da imagema*/
$dir = realpath ("C:/wamp/www/upload/imagem");//caminho no caso de um window


$imagem = $_FILES['imagem']['name']; /*pegando p file uploadeado*/

$tmp = $_FILES['imagem']['tmp_name']; /*pegando o temp da imagem*/



list($largura,$altura,$tipo)=getimagesize($tmp);
/*criar variaveis como ser fosse array aqui e o pego largura e altura e tipo de imagem
se e um jpg ou gif olhe o poderoso manual do php sobre getimagesize */


if($tipo > 3 ) {
echo "formato de arquivo invalido eu so aceito trabalhar jpg ou gif";
print'<a href=java script:history.back() >'.'<p class="aviso">clique aqui para voltar...</p>'.'</a>';
/*aqui e o vejo o que para mim jpg ou gif */
exit();
}
if($largura > $largura_max || $altura > $altura_max ){
echo "sua iamgem e maior que o permitido ";
print'<a href=java script:history.back() >'.'<p class="aviso">clique aqui para voltar...</p>'.'</a>';
/*vejo a largura ou altura la em cima que veio para mim lembrando la em cima eu coloquei
o maximo */
exit();
}

$imagem2 =rand(5,$imagem);
/*radonizar geral novo new de imagem direito,ja que tu proposta que ser existe gere uma new name */


$caminho=$dir.'\\'.$imagem2.$imagem;
/*endereço com telefone para onde vai a imagem */

//caminho com nome da imagem e local para guardar
if(move_uploaded_file($_FILES['imagem']['tmp_name'],$caminho)) {
echo "sua imagem foi uploadeada ";
//aqui nada especial so movo a tmp_name dando caminho

}

if($tipo > 1) {

$thundebal = imagecreatefromjpeg($caminho);
/*se a img for to tipo jpeg criar imagecreatefromjpeg*/
}
else {
$thundebal = imagecreatefromgif($caminho);
/*se a img for to tipo gif criar imagecreatefromgif*/
}
$Thundeball = imagecreatetruecolor(75, 75);
// diminuir a imagem preservado as cores e diminiudo a imagem tamanho 75x75

imagecopyresampled($Thundeball, $thundebal, 0, 0, 0, 0, 75, 75, $largura,$altura);
//sample da imagem com os tamanho 75 x75 -> esse dois aqui e o novo tamanhao da imagem


if($tipo > 1) {
imagejpeg($Thundeball,$dir.'/pequena_'.$imagem2.$imagem);
/*conforme no tipo eu gero o thundball com a extensao pequena imagem mudada*/
}
else {
imagegif($Thundeball,$dir.'/pequena_'.$imagem2.$imagem);
}



?>


valeu Boa PAscoa para vc Andre
qual coisa sabe como me achar

kakaroto
http://www.obsidian.com.br
web master :assobio:



Obrigadão meu amigo!

Estou muito grato a você!

OBS.: Esse script tem limite de peso de arquivo? Se não se as pessoas enviarem arquivos de mais de 1MB haja servidor néh..rsrsrs

Se tiver limite de peso nele me mostra onde pois não achei.

E a linha com o código:

$imagem2 =rand(5,$imagem);

estava retornando um erro,
mas alterei para:

$imagem2 =md5(uniqid(time())) . ".";

e deu certo quanto a mudança dos nomes.

Novamente muito obrigado amigo!!!
:)

#4 kakaroto1500

kakaroto1500

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Não informado

Posted 07/04/2007, 21:27

estranho erro logo nessa linha

podia pelo menos disse que erro e ??/
o limite esta aqui

if($largura > $largura_max || $altura > $altura_max ){
echo "sua iamgem e maior que o permitido ";
print'<a href=java script:history.back() >'.'<p class="aviso">clique aqui para voltar...</p>'.'</a>';
/*vejo a largura ou altura la em cima que veio para mim lembrando la em cima eu coloquei
o maximo */
exit();
}



eu testei com O pacote wamp1.66 aqui

kakaroto
http://www.obsidian.com.br
obrigado nada sao 2.50 na lan house kkkkkkkkkkkkkkk

Edição feita por: kakaroto1500, 08/04/2007, 09:59.





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq