- Phoenix
- Posts : 368
Sexo :
Local : Ex-Administrador
Sistema de upload de imagem [php]
25/3/2011, 10:12
Pessoal essa classe que eu fiz ja tem um bom tempo, nem considero uma classe é mais uma função, mas como a intenção é ensinar o redimencionamento entao nao refiz a classe o que quero passar pra vcs é o redimencionamento da imagem e criando o thumbnails , apesar que minha classe sendo antiga ela funciona legal e valida se o upload foi feito e se é uma imagem mesmo e nesse exemplo eu nao uso as funções de upload move nem copy porque eu pego a imagem na pasta temp do servidor e ja crio a imagem nova na pasta destino
vamos ao script:
index.php
funcoes.php
class.upload.php
como falei acima o foco desse tutorial é ensinar o redimencionamento da imagem sem perder nenhum pedaço da imagem porque a função reduz_imagem que eu criei ela redimenciona proporcionalmente a imagem
modo de usar passando a resolução como parametro exemplo 400 X 300
reduz_imagem("nome_da_imagem", 400, 300, "path_da_foto");
com esse exemplo vcs podem criar sistema de upload que salva o nome da foto no banco e só adaptar a gosto mas quem tiver duvidas só postar.
Retirado de: IMasters Fóruns, by: Fabyo.
vamos ao script:
index.php
- Código:
<?
require_once "class_upload.php";
$upload = new Upload();
$upload->Envia_Arquivo();
?>
<html>
<head>
<title>Upload</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data" name="form1">
<input type="file" name="arquivo">
<input type="submit" name="Submit" value="Enviar">
</form>
</body>
</html>
funcoes.php
- Código:
<?php
/*Fabyo Guimaraes de Oliveira */
function reduz_imagem($img, $max_x, $max_y, $nome_foto) {
//pega o tamanho da imagem ($original_x, $original_y)
list($width, $height) = getimagesize($img);
$original_x = $width;
$original_y = $height;
// se a largura for maior que altura
if($original_x > $original_y) {
$porcentagem = (100 * $max_x) / $original_x;
}
else {
$porcentagem = (100 * $max_y) / $original_y;
}
$tamanho_x = $original_x * ($porcentagem / 100);
$tamanho_y = $original_y * ($porcentagem / 100);
$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);
$image = imagecreatefromjpeg($img);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);
return imagejpeg($image_p, $nome_foto, 100);
}
?>
class.upload.php
- Código:
<?
set_time_limit(0);
include "funcoes.php";
class Upload
{
var $arquivo = "";
var $erro = array ( "0" => "upload execultado com sucesso!",
"1" => "O arquivo é maior que o permitido pelo Servidor",
"2" => "O arquivo é maior que o permitido pelo formulario",
"3" => "O upload do arquivo foi feito parcialmente",
"4" => "Não foi feito o upload do arquivo"
);
function Verifica_Upload()
{
$this->arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;
if(!is_uploaded_file($this->arquivo['tmp_name'])) {
return false;
}
$get = getimagesize($this->arquivo['tmp_name']);
if($get["mime"] != "image/jpeg")
{
echo "<span style=\"color: white; border: solid 1px; background: red;\">Esse foto nao é uma imagem valida</span>";
exit;
}
return true;
}
function Envia_Arquivo()
{
if($this->Verifica_Upload()) {
$this->gera_fotos();
return true;
} else {
echo "<span style=\"color: white; border: solid 1px; background: red;\">".$this->erro[$this->arquivo['error']]."</span>";
}
}
function gera_fotos()
{
$diretorio = "fotos/";
if(!file_exists($diretorio))
{
mkdir($diretorio);
}
$nome_foto = "imagem_".time().".jpg";
$nome_thumb = "thumb_".time().".jpg";
//determino uma resolução maxima e se a imagem for maior ela sera reduzida
reduz_imagem($this->arquivo['tmp_name'], 400, 300, $diretorio.$nome_foto);
//passo o tamanho da thumbnail
reduz_imagem($this->arquivo['tmp_name'], 120, 90, $diretorio.$nome_thumb);
echo "<span style=\"color: white; border: solid 1px; background: blue;\">".$this->erro[$this->arquivo['error']]."</span>";
}
}
?>
como falei acima o foco desse tutorial é ensinar o redimencionamento da imagem sem perder nenhum pedaço da imagem porque a função reduz_imagem que eu criei ela redimenciona proporcionalmente a imagem
modo de usar passando a resolução como parametro exemplo 400 X 300
reduz_imagem("nome_da_imagem", 400, 300, "path_da_foto");
com esse exemplo vcs podem criar sistema de upload que salva o nome da foto no banco e só adaptar a gosto mas quem tiver duvidas só postar.
Retirado de: IMasters Fóruns, by: Fabyo.
Permissões neste sub-fórum
Não podes responder a tópicos