Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

EHCampos

upload com redimensionamento

Recommended Posts

Todas as imagens de tamnho muito grande que eu tendo enviar pelo servidor usando o sistema de upload com redimensionamento, esta dando erro em todas as linhas do redimensionamento.

 

upload.php(A base desse arquivo foi tirada de um tutorial feito por ozorio)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1 ">
<title>Upload Foto</title>
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" />
</head>
<body>
<center>
<h2>Upload Fotos</h2>
<form name="up" action="" method="POST" enctype="multipart/form-data">
<select name="categoria">
<option value="Basculante">Basculante</option>
<option value="Escada">Escada</option>
<option value="Artistico">Artistico</option>
</select>
Codigo:<input type="text" name="codigo" value="" />
Imagem:<input type="file" name="arquivo" value="" />
Legenda:<input type="text" name="legenda" value="" />
<input type="submit" name="submit" value="submeter" />
</form>


<?php

if (isset ($_POST["submit"])) {
//chmod ("fotos", 0777);
class upload {
// atributos
var $arquivo;
var $arquivo_nome;
var $arquivo_size;
var $arquivo_diretorio;
var $mover_arquivo;
var $legenda;
var $insere;
var $categoria;
var $codigo;
var $ren;

function envia() {
$this->arquivo=$_FILES["arquivo"];
$this->arquivo_nome=$this->arquivo["name"];
$this->arquivo_size=$this->arquivo["size"];
$this->legenda=$_POST['legenda'];
$this->ren;
$this->categoria=$_POST['categoria'];
$this->codigo=$_POST['codigo'];

//verifica se existe algum arquivo selecionado
if($this->arquivo_nome==false){
echo"<script>alert('Selecione um arquivo ok]');</script>";
echo"<script>history.back();</script>";
exit();
}

//verifica se existe algum arquivo selecionado
if($this->codigo==false){
echo"<script>alert('Insira um código]');</script>";
echo"<script>history.back();</script>";
exit();
}

//verifica se existe algum arquivo selecionado
if($this->categoria==false){
echo"<script>alert('Selecione uma categoria]');</script>";
echo"<script>history.back();</script>";
exit();
}

// geramos um nome unico para a imagem 
$this->ren = strtolower($this->arquivo_nome);

//verifica extenção do arquivo
if(!preg_match("^[a-z A-Z 09 -_]+[.]+[jpg,png,gif]^",$this->ren)) {
echo"<script>alert('Arquivo nao permitido para upload Ok');</script>";
echo"<script>history.back();</script>";
exit();
}

// upload e registro de pasta
$this->arquivo_diretorio = "../galeria/images/".$this->ren;

//verifica se ja exite o codigo
require_once '../conecta.php';

$sql_2 = mysql_query("SELECT * FROM `galeria` WHERE codigo = $this->codigo");
$num_img = mysql_num_rows($sql_2);
if($num_img=='1') {
echo"<script>alert('Codigo ja cadastrado');</script>";
echo"<script>history.back();</script>";
exit();
}

	
// verifica se arquivo ja existe no diretorio
if(file_exists($this->arquivo_diretorio)) {
echo"<script>alert('Arquivo ja existe em Nosso Servidor');</script>";
echo"<script>history.back();</script>";
exit();
}
else {
// Upload e alocação de arquivo
$this->mover_arquivo = copy($this->arquivo["tmp_name"], $this->arquivo_diretorio);

//cria nova imagem tumb com tamano H100xW154
//redimencionar 
include('redimensionar.php');
redimensionar($this->arquivo, $this->ren, 100, "../galeria/thumbnails");
redimensionar($this->arquivo, $this->ren, 420, "../galeria/images");

// incluimos e enviamos para o banco de dados
$this->insere="INSERT INTO galeria (codigo,imagem,thumbnails,legenda,categoria)VALUES ('$this->codigo','$this->ren','$this->ren','$this->legenda','$this->categoria')";
mysql_query($this->insere) or die (mysql_error());

echo"<script>alert('Arquivo Enviado com Sucesso');</script>";

}
}// função envia fim

}//classe upload fim

$upload=new upload();//objeto instanciado
$upload->envia();
}//bt.submit fim
?>

<div align="center"><a href="index.php">>>Voltar ao Album<<</a></div>
</center>
</body>
</html>

Redmencionar.php

<?php
      function redimensionar($imagem, $name, $altura, $pasta){
            $img = imagecreatefromjpeg($imagem['tmp_name']);
            $x   = imagesx($img);
            $y   = imagesy($img);
            $largura = ($altura * $x)/$y;
            $nova = imagecreatetruecolor($largura, $altura);
            imagecopyresampled($nova, $img, 0, 0, 0, 0, $largura, $altura, $x, $y);
            imagejpeg($nova, "$pasta/$name");
            imagedestroy($img);
            imagedestroy($nova);
            return $name;
      }
   
?>

Erro

Warning: copy() [function.copy]: Unable to access in /home/c92109/public_html/teste/adm/upload.php  on line 114

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: Filename cannot be empty in /home/c92109/public_html/teste/adm/redimensionar.php on line 3

Warning: imagesx(): supplied argument is not a valid Image resource in /home/c92109/public_html/teste/adm/redimensionar.php on line 4

Warning: imagesy(): supplied argument is not a valid Image resource in /home/c92109/public_html/teste/adm/redimensionar.php on line 5

Warning: Division by zero in /home/c92109/public_html/teste/adm/redimensionar.php on line 6

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /home/c92109/public_html/teste/adm/redimensionar.php on line 7

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/c92109/public_html/teste/adm/redimensionar.php on line 8

Warning: imagejpeg(): supplied argument is not a valid Image resource in /home/c92109/public_html/teste/adm/redimensionar.php on line 9

Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/c92109/public_html/teste/adm/redimensionar.php on line 10

Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/c92109/public_html/teste/adm/redimensionar.php on line 11

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: Filename cannot be empty in /home/c92109/public_html/teste/adm/redimensionar.php on line 3

Warning: imagesx(): supplied argument is not a valid Image resource in /home/c92109/public_html/teste/adm/redimensionar.php on line 4

Warning: imagesy(): supplied argument is not a valid Image resource in /home/c92109/public_html/teste/adm/redimensionar.php on line 5

Warning: Division by zero in /home/c92109/public_html/teste/adm/redimensionar.php on line 6

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /home/c92109/public_html/teste/adm/redimensionar.php on line 7

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/c92109/public_html/teste/adm/redimensionar.php on line 8

Warning: imagejpeg(): supplied argument is not a valid Image resource in /home/c92109/public_html/teste/adm/redimensionar.php on line 9

Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/c92109/public_html/teste/adm/redimensionar.php on line 10

Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/c92109/public_html/teste/adm/redimensionar.php on line 11

Mesmo dando o erro ele insere no banco de dados todos os dados ate o caminho da imagem mas não envia as imagame para suas pasta

 

Isso ocorre apenas com imagem acima de 2Mb.

 

Coloquei o titolo do topico errado, apesar desse sistema estar mt lerdo para enviar apenas 1 image, mais o q pressiso mais urgente é arrumar esso erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Encontrei o problema ou parte dele.

 

Qd a imagem é tamanho pequenho 1Mb +/- dava tempo de mover ela da temp para pasta imagens antes da função redmencionar execultar, mais com imagens maior 2Mb não esta dando tempo, qd a função procura o arquivo na pasta imagens não tem nada dando esse erro.

 

Eu tirei fora a parte de mover da pasta temp para imagens e coloquei para a function pegar a imagen direto da pasta temp e redmencionar depois salvar na pasta thumb e imagens, mais esta dando o mesmo erro.

 

parte do código q editei

// verifica se arquivo ja existe no diretorio
if(file_exists($this->arquivo_diretorio)) {
echo"<script>alert('Arquivo ja existe em Nosso Servidor');</script>";
echo"<script>history.back();</script>";
exit();
}
else {
//cria nova imagem tumb com H100 e uma imagens com H420
//redimencionar 
include('redimensionar.php');
redimensionar($this->arquivo["tmp_name"], $this->ren, 100, "../galeria/thumbnails");
redimensionar($this->arquivo["tmp_name"], $this->ren, 420, "../galeria/images");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.