EHCampos 0 Denunciar post Postado Abril 11, 2010 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
EHCampos 0 Denunciar post Postado Abril 11, 2010 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