AiltonSP 0 Denunciar post Postado Janeiro 27, 2017 Boa noite galera. Estou com um grande problema. Estou desenvolvendo um sistema de upload e resize de fotos, ele pega a foto da pasta em tamanho normal, diminui ela em dois tamanhos e salva em duas pastas chamadas Fotosg e Fotosp. O sistema dará opção para o usuário inserir até 10 fotos, uma de cada vez. A primeira opção de envio está funcionando normalmente, mas da segunda em diante não funciona. Estou usando o método GET, e quando tento enviar da segunda em diante no navegador aparece a página em branco e o endereço: http://localhost/teste/UpLoadFuncoes.php?funcao=Foto2 Os códigos estão idênticos, só mudando os nomes dos campos. Já revisei dezenas de vezes e não acho nenhum erro. Segue os código: UploadFotos.php <form id="" method="POST" action="UpLoadFuncoes.php?funcao=FotoPrincipal" enctype="multipart/form-data" onSubmit="submit.disabled = 'disabled';"> <div id="bordas" style="height:30px; width:310px; text-align:center; padding-top:8px; top:12px; left:10px; background-color:#FFF; margin-top:28px; margin-left:45px; float:left; "> <input id="img1" type="file" size="75" maxlength="350" name="img1" value="" /> </div> <div style=" height:17px; width:50px; padding-top:1px; left:10px; margin-top:12px; margin-left:160px; text-align:center; float:inherit;"> <input class="button1" type="submit" id="submit" name="submit" value="Enviar" /> </div> </form> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx UpLoadFuncoes.php $PastaFotog = "./fotosg/"; $PastaFotop = "./fotosp/"; if($_GET['funcao'] == "FotoPrincipal" && is_file($_FILES['img1']['tmp_name'])){ // compara a função e o arquivo $upload_tmp = (!empty($_FILES['img1']['tmp_name'])) ? $_FILES['img1']['tmp_name'] : ''; //Se o arquivo foi enviado ao servidor, serão feitas algumas checagens no arquivo if (is_uploaded_file($upload_tmp)) { //Armazena em um array, as extensões de arquivo que serão aceitas $img_types = array(".gif", ".jpg", ".jpeg", ".JPG", ".JPEG", ".png"); //armazena na variável $img, o nome de upload do arquivo, que é img. $img = $_FILES['img1']; /*pega o nome da imagem, pega tudo o que estiver antes do ponto ".", *deixando a extensão de fora. */ $img_name = strtolower(substr($img['name'], 0, strrpos($img['name'],"."))); $img_name = time(); //pega somente a extensão do arquivo, tudo o que estiver depois do pnto $img_ext = strtolower(strrchr($img['name'], ".")); //diretório temporário, onde a imagem ficará até ter o seu tamanho reduzido. $img_tmp_dest = "./fototemp/"; //faz uma verificação no nome da imagem, que só poderá conter letras e números. if (!preg_match("/^[-0-9A-Z_\' '[\]]+$/i", $img_name)) { echo ("<script>alert('A imagem deve ter um nome legivel.');location='UploadFotos.php';</script>"); /*chega se o tamanho da imagem que está sendo usada no upload tem tamanho *maior que o estabelecido previamente. */ } elseif ($img['size'] > $settings['img_max_b']) { echo ("<script>alert('A imagem deve ter tamanho menor/igual a 3000 bytes.');location='UploadFotos.php';</script>"); /*E se o formato do arquivo que está sendo usado no upload não for um dos aceitos...*/ } elseif (!in_array($img_ext, $img_types)) { echo("<script>alert('São aceitos os seguintes formatos de arquivos: .gif, .jpg, .jpeg, .JPG, .JPEG, .png.');location='UploadFotos.php';</script>"); for($i = 0; $i < count($img_types); $i++) { if(count($img_types[$i])) { echo($img_types[$i] . ",\n\t"); } } } else { //captura a imagem que se encontra no diretório temporário que criamos. $img_file = image_exists($img_tmp_dest, $img_name . $img_ext); /*E então copia a imagem que está em $_FILES['img']['tmp_name'] para o nosso *diretório temporário. */ move_uploaded_file($upload_tmp, $img_tmp_dest . $img_file); /*Modifica as permissões de acesso ao arquivo. * Escrita e leitura para o proprietário, somente leitura para todos os outros. */ chmod($img_tmp_dest . $img_file, 0644); //pega a largura, a altura e o tipo de imagem que está sendo usada. list($width, $height, $type) = @getimagesize($img_tmp_dest . $img_file); /*Se preferir use assim: */ $imagefile = getimagesize($img_tmp_dest . $img_file); if ($imagefile[0] > 3000 || $imagefile[1] > 1700) { echo ("<script>alert('Imagem muito grande, escolha uma com até 3000 x 1700 pixels.');location='UploadFotos.php';</script>"); } else { //cria um nome diferente para a imagem menor $img_thumb = image_exists($img_tmp_dest, $img_name . "p" . $img_ext); //cria um nome diferente para a imagem maior $img_thumb2 = image_exists($img_tmp_dest, $img_name . $img_ext); /*Aqui é usada a função createthumbnail() que criamos anteriormente *para gerar as imagens de tamanho menor. */ createthumbnail($type, $img_tmp_dest . $img_file, $img_tmp_dest . $img_thumb, $settings['thumb_w'], $settings['thumb_h'], $settings['thumb_compression']); /*Aqui é usada a função createthumbnail() que criamos anteriormente *para gerar as imagens de tamanho maior. */ createthumbnail($type, $img_tmp_dest . $img_file, $img_tmp_dest . $img_thumb2, $settings['thumb_w2'], $settings['thumb_h2'], $settings['thumb_compression']); /*copia a imagem, já redimensionada, para a pasta fotosp*/ copy($img_tmp_dest . $img_thumb, "./fotosp/" . $img_thumb); if($FotoPrincipalp != "SemFoto.png"){ unlink("./fotosp/$FotoPrincipalp"); // apaga o aquivo na pasta fotos } else{ ($FotoPrincipalp == $FotoPrincipalp); } /*copia a imagem de tamanho maior para a pasta grande*/ copy($img_tmp_dest . $img_thumb2, "./fotosg/" . $img_file); if($FotoPrincipal != "SemFoto.png"){ unlink("./fotosg/$FotoPrincipal"); // apaga o aquivo na pasta fotos }else{ ($FotoPrincipal = $FotoPrincipal); } /*apaga o conteúdo da pasta temporária que usamos durante todo o processo*/ unlink($img_tmp_dest . $img_thumb); unlink($img_tmp_dest . $img_thumb2); unlink($img_tmp_dest . $img_file); /* Salva o nome no bancode dados */ $MySQLi->query("UPDATE clientes SET FotoPrincipal='$img_file', FotoPrincipalp='$img_thumb' WHERE id='572'") or die (mysql_error()); echo ("<script>alert('Foto Principal enviada com sucesso!');location='UploadFotos.php';</script>"); } } } else { echo ("<script>alert('Erro no envio! Verifique o tamanho do arquivo e tente novamente!');location='UploadFotos.php';</script>"); } } xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Opção de envio da segunda foto que não funciona <form method="post" action="UpLoadFuncoes.php?funcao=Foto2" enctype="multipart/form-data" onSubmit="submit.disabled = 'disabled';"> <div id="bordas" style="height:30px; width:310px; text-align:center; padding-top:8px; top:12px; left:10px; background-color:#FFF; margin-top:28px; margin-left:45px; float:left; "> <input id="img2" type="file" size="75" maxlength="350" name="img2" value=""/> </div> <div style=" height:17px; width:50px; padding-top:1px; left:10px; margin-top:12px; margin-left:160px; text-align:center; float:inherit;"> <input class="button2" type="submit" id="submit2" onClick="this.className = 'button2 disabled';" name="submit2" value="Enviar" /> </div> </form> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx if($_GET['funcao'] == "Foto2" && is_file($_FILES['img2']['tmp_name'])){ // compara a função e o arquivo $upload_tmp = (!empty($_FILES['img2']['tmp_name'])) ? $_FILES['img2']['tmp_name'] : ''; //Se o arquivo foi enviado ao servidor, serão feitas algumas checagens no arquivo if (is_uploaded_file($upload_tmp)) { //Armazena em um array, as extensões de arquivo que serão aceitas $img_types = array(".gif", ".jpg", ".jpeg", ".JPG", ".JPEG", ".png"); //armazena na variável $img, o nome de upload do arquivo, que é img. $img = $_FILES['img2']; /*pega o nome da imagem, pega tudo o que estiver antes do ponto ".", *deixando a extensão de fora. */ $img_name = strtolower(substr($img['name'], 0, strrpos($img['name'],"."))); $img_name = time(); //pega somente a extensão do arquivo, tudo o que estiver depois do pnto $img_ext = strtolower(strrchr($img['name'], ".")); //diretório temporário, onde a imagem ficará até ter o seu tamanho reduzido. $img_tmp_dest = "./fototemp/"; //faz uma verificação no nome da imagem, que só poderá conter letras e números. if (!preg_match("/^[-0-9A-Z_\' '[\]]+$/i", $img_name)) { echo ("<script>alert('A imagem deve ter um nome legivel.');location='UploadFotos.php';</script>"); /*chega se o tamanho da imagem que está sendo usada no upload tem tamanho *maior que o estabelecido previamente. */ } elseif ($img['size'] > $settings['img_max_b']) { echo ("<script>alert('A imagem deve ter tamanho menor/igual a 3000 bytes.');location='UploadFotos.php';</script>"); /*E se o formato do arquivo que está sendo usado no upload não for um dos aceitos...*/ } elseif (!in_array($img_ext, $img_types)) { echo("<script>alert('São aceitos os seguintes formatos de arquivos: .gif, .jpg, .jpeg, .JPG, .JPEG, .png.');location='UploadFotos.php';</script>"); for($i = 0; $i < count($img_types); $i++) { if(count($img_types[$i])) { echo($img_types[$i] . ",\n\t"); } } } else { //captura a imagem que se encontra no diretório temporário que criamos. $img_file = image_exists($img_tmp_dest, $img_name . $img_ext); /*E então copia a imagem que está em $_FILES['img']['tmp_name'] para o nosso *diretório temporário. */ move_uploaded_file($upload_tmp, $img_tmp_dest . $img_file); /*Modifica as permissões de acesso ao arquivo. * Escrita e leitura para o proprietário, somente leitura para todos os outros. */ chmod($img_tmp_dest . $img_file, 0644); //pega a largura, a altura e o tipo de imagem que está sendo usada. list($width, $height, $type) = @getimagesize($img_tmp_dest . $img_file); /*Se preferir use assim: */ $imagefile = getimagesize($img_tmp_dest . $img_file); if ($imagefile[0] > 3000 || $imagefile[1] > 1700) { echo ("<script>alert('Imagem muito grande, escolha uma com até 3000 x 1700 pixels.');location='UploadFotos.php';</script>"); } else { //cria um nome diferente para a imagem menor $img_thumb = image_exists($img_tmp_dest, $img_name . "p" . $img_ext); //cria um nome diferente para a imagem maior $img_thumb2 = image_exists($img_tmp_dest, $img_name . $img_ext); /*Aqui é usada a função createthumbnail() que criamos anteriormente *para gerar as imagens de tamanho menor. */ createthumbnail($type, $img_tmp_dest . $img_file, $img_tmp_dest . $img_thumb, $settings['thumb_w'], $settings['thumb_h'], $settings['thumb_compression']); /*Aqui é usada a função createthumbnail() que criamos anteriormente *para gerar as imagens de tamanho maior. */ createthumbnail($type, $img_tmp_dest . $img_file, $img_tmp_dest . $img_thumb2, $settings['thumb_w2'], $settings['thumb_h2'], $settings['thumb_compression']); /*copia a imagem, já redimensionada, para a pasta fotosp*/ copy($img_tmp_dest . $img_thumb, "./fotosp/" . $img_thumb); if($Foto2p != "SemFoto.png"){ unlink("./fotosp/$Foto2p"); // apaga o aquivo na pasta fotos } else{ ($Foto2p == $Foto2p); } /*copia a imagem de tamanho maior para a pasta grande*/ copy($img_tmp_dest . $img_thumb2, "./fotosg/" . $img_file); if($Foto2 != "SemFoto.png"){ unlink("./fotosg/$Foto2"); // apaga o aquivo na pasta fotos }else{ ($Foto2 = $Foto2); } /*apaga o conteúdo da pasta temporária que usamos durante todo o processo*/ unlink($img_tmp_dest . $img_thumb); unlink($img_tmp_dest . $img_thumb2); unlink($img_tmp_dest . $img_file); /* Salva o nome no bancode dados */ $MySQLi->query("UPDATE clientes SET Foto2='$img_file', Foto2p='$img_thumb' WHERE id='572'") or die (mysql_error()); echo ("<script>alert('Foto 2 enviada com sucesso!');location='UploadFotos.php';</script>"); } } } else { echo ("<script>alert('Erro no envio! Verifique o tamanho do arquivo e tente novamente!');location='UploadFotos.php';</script>"); } } Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Janeiro 27, 2017 Tenta isolar o problema. Se você está com problema apenas no upload /resize. Faz um mock desse trecho (isola ele ignora input de usuário usando dados via hardcode) Fica difícil alguém externo ajudar você. No mais leia as regras e que tem dicas de exibir os erros e debug Compartilhar este post Link para o post Compartilhar em outros sites