Jump to content
imultimidia

upload multiplo com redimensionamento

Recommended Posts

Boa noite pessoal, estou tendo uma dor de cabeça, sou iniciante.

Tenho um arquivo que envia múltiplas imagens, só que não redimensiona.

Inclui uma classe para redimensionar que ja uso em outros arquivos porém não em múltiplos.

O problema é que sempre dá erro, como se o redirecionamento não estivesse recebendo as imagens. Segue o código e a classe.

Se poderem me ajudar, desde já muito obrigado!

 

<?php if(session_is_registered("$var_sessaor")) { ?>

<?php
include("FCKeditor/fckeditor.php");
include_once ('Redimensiona.php');

$id=$_GET['id'];
require('saidas.php');
if(isset($_POST['enviar']))
{
foreach($_FILES['foto']['name'] as $key => $arquivo)
{
if($arquivo!='')
{
//redimensiona
$foto = $_FILES['foto'][$key];
$redim = new Redimensiona();
$imagem = $redim->Redimensionar($foto, 800, '../imgs/projetos_fotos/');

//upload sem redimensionamento
/*$hash=md5(microtime()).'.jpg';
if(move_uploaded_file($_FILES['foto']['tmp_name'][$key],'../imgs/projetos_fotos/'.$hash))*/
{
$legenda=$_POST['legenda'][$key];
mysql_query("INSERT INTO projetos_fotos (projetos,foto,legenda) VALUES ('$id','$imagem','$legenda')");
}
}
}
throw_alert('Fotos enviadas com sucesso!','?p=projetos_fotos2&id='.$id);
}


elseif(isset($_GET['foto']))
{
$fotoid=$_GET['foto'];
$select=mysql_query("SELECT * FROM projetos_fotos WHERE id='$fotoid'");
$vessel=mysql_fetch_array($select);
@unlink('../imgs/projetos_fotos/'.$vessel['foto']);
$del=mysql_query("DELETE FROM projetos_fotos WHERE id='$fotoid'");
if($del)
throw_alert('Foto removida com sucesso.','?p=books_fotos&id='.$vessel['books']);
}

?>



<!--GERAL-->
<div class="panel panel-default">

<div style="margin-top:10px; padding:5px;" class="borda">
<h1>Fotos para o Book</h1>
<p><a href="?p=projetos" class="btn btn-default" style="width: 115px;">Voltar</a></p>
</div>


<div class="panel-heading no-collapse">
<span >Cadastrar fotos para: </span>
<span style="font-weight:bold;">
<?php
$id=$_GET['id'];
$select=mysql_query("SELECT * FROM projetos WHERE id='$id'");
$display=mysql_fetch_array($select);
print ''.$display['titulo'].'';
?>
</span>
</div>



<!--form-->
<div style="margin-top:30px; padding:10px; overflow:hidden; max-width:800px;" >


<form name="dados" method="post" action="?p=projetos_fotos2&id=<?php print $id; ?>" enctype="multipart/form-data">
<?php
for($i=0;$i<6;$i+=2)
{
?>
<div style="col-lg-4">
<div class="form-group">
<label style="font-size:11px;">Foto</label>
<input type="file" <?php print 'name="foto['.$i.']"'; ?> />
</div>
</div>

<div style="col-lg-4">
<div class="form-group">
<label style="font-size:11px;">Foto</label>
<input type="file" <?php print 'name="foto['.($i+1).']"'; ?> />
</div>
</div>
<?php } ?>

<div style="clear:both"></div>

<input type="submit" name="enviar" value="Adicionar" class="btn btn-primary" />

</form>


</div>
<!-- form-->


<div class="panel-heading no-collapse" style="margin-top:40px;">
<span >Fotos Cadastradas</span>
</div>

<!--fotos-->
<div style="margin-top:30px; overflow:hidden;">

<?php
$sql = mysql_query("SELECT * FROM projetos_fotos WHERE projetos='$id' ORDER BY id DESC LIMIT 100");
while($x = mysql_fetch_array($sql))
{
?>

<div align="center" style="width:200px; height:200px; float:left; background-color:#F4F4F4; padding:7px; margin:10px;">
<img src="../imgs/projetos_fotos/<?=$x['foto'];?>" width="185" height="139" border="0" /><br>
<!--<div style="font-size:11px; margin-top:10px;">'.$display['legenda'].'</div><br />-->

<div align="center" style="margin-top:10px;">
<a href="?p=projetos_fotos&foto=<?=$x['id'];?>" class="btn btn-default" onclick="return confirm('Deseja mesmo remover?')" >
Excluir Foto</a>
</div>
</div>
<?php } ?>
</div>
<!--fotos-->




</div>
<!--GERAL-->
<?php } ?>

 

------------------------------------------------------------------------------------------------

 

//CLASSE DE REDIMENDIONAR

 

<?php
class Redimensiona{

public function Redimensionar($imagem, $largura, $pasta){

$name = md5(uniqid(rand(),true));

if ($imagem['type']=="image/jpeg"){
$img = imagecreatefromjpeg($imagem['tmp_name']);
}else if ($imagem['type']=="image/gif"){
$img = imagecreatefromgif($imagem['tmp_name']);
}else if ($imagem['type']=="image/png"){
$img = imagecreatefrompng($imagem['tmp_name']);
}
$x = imagesx($img);
$y = imagesy($img);
$autura = ($largura * $y)/$x;

$nova = imagecreatetruecolor($largura, $autura);
imagecopyresampled($nova, $img, 0, 0, 0, 0, $largura, $autura, $x, $y);

if ($imagem['type']=="image/jpeg"){
$local="$pasta/$name".".jpg";
$imagemName = $name.".jpg";
imagejpeg($nova, $local);
}else if ($imagem['type']=="image/gif"){
$local="$pasta/$name".".gif";
$imagemName = $name.".gif";
imagegif($nova, $local);
}else if ($imagem['type']=="image/png"){
$local="$pasta/$name".".png";
$imagemName = $name.".png";
imagepng($nova, $local);
}

imagedestroy($img);
imagedestroy($nova);

return $imagemName;
}
}
?>

Share this post


Link to post
Share on other sites

Anderson, segue o erro:

 

Notice: Undefined variable: img in /home/sitedearq/public_html/demo/ipg/Redimensiona.php on line 15

Warning: imagesx() expects parameter 1 to be resource, null given in /home/sitedearq/public_html/demo/ipg/Redimensiona.php on line 15

Notice: Undefined variable: img in /home/sitedearq/public_html/demo/ipg/Redimensiona.php on line 16

Warning: imagesy() expects parameter 1 to be resource, null given in /home/sitedearq/public_html/demo/ipg/Redimensiona.php on line 16

Warning: Division by zero in /home/sitedearq/public_html/demo/ipg/Redimensiona.php on line 17

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /home/sitedearq/public_html/demo/ipg/Redimensiona.php on line 19

Notice: Undefined variable: img in /home/sitedearq/public_html/demo/ipg/Redimensiona.php on line 20

Warning: imagecopyresampled() expects parameter 1 to be resource, boolean given in /home/sitedearq/public_html/demo/ipg/Redimensiona.php on line 20

Notice: Undefined variable: img in /home/sitedearq/public_html/demo/ipg/Redimensiona.php on line 36

Warning: imagedestroy() expects parameter 1 to be resource, null given in /home/sitedearq/public_html/demo/ipg/Redimensiona.php on line 36

Warning: imagedestroy() expects parameter 1 to be resource, boolean given in /home/sitedearq/public_html/demo/ipg/Redimensiona.php on line 37

Notice: Undefined variable: imagemName in /home/sitedearq/public_html/demo/ipg/Redimensiona.php on line 39

Notice: Undefined variable: legenda in /home/sitedearq/public_html/demo/ipg/projetos_fotos2.php on line 29

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Alberto Nascimento
      Tenho este código abaixo que inseri em meu arquivo para que possa exibir por link a imagem que encontra-se hospedada em uma pasta no meu servidor, sendo que a mesma "pega" o nome do arquivo que foi salvo anteriormente no registro específico.
      echo sprintf('<a href="http://www.meusite.com.br/imagens/%s">', $rows_cursos['novonome']); echo "".$rows_cursos['novonome']."<br>"; Porém estou com um problema. As imagens que são exibidas em uma frame, porém por serem imagens em sua maioria enormes, elas ficam "gigantes na tela". Então, seria possível "redimensionar" a um valor expecífico em pixels ou então que seja redimensionado a um percentual ou de acordo com o frame ? Existe algum código que faça redimensionar as imagens?
    • By Artur Mendonça
      Olá amigos.
      Estou a tentar fazer um sistema para upload de vídeos para criar uma base de dados.
      Já fiz um sistema para imagens e funciona na perfeição. Adaptei este código para upload de vídeo e recebo as mensagens de erro:
      Os (...) foi que coloquei para encurtar o caminho.
       
      Código da página para seleção e upload do vídeo:
      <?php session_start(); include_once "../conexao.php"; $agid = $_REQUEST['id']; $sql = "select * from tbl_album where albumid='$agid'"; $rs_result = mysqli_query($conectar, $sql); ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content="Página Administrativa"> <meta name="author" content=""> <link rel="icon" href="imagens/imgadmin.ico"> <title>Administrativo</title> <link rel="stylesheet" href="../css/bootstrap.min.css"> <link rel="stylesheet" href="../css/style.css"> </head> <?php $agid = $_REQUEST['id']; $sql = "SELECT * FROM tbl_albumvideo WHERE albumid='$agid'"; $rs_result = mysqli_query($conectar, $sql); while ($row = mysqli_fetch_assoc($rs_result)) { $aname = $row["name"]; } ;?> <body> <?php include_once "admmenu.php"; ?> <div class="container theme-showcase" role="main" Style='margin-top: 100px'> <h1 class="page-header"><br />Adicionar vídeo</h1> <div class="row"> <div class="col-md-12"> <div class="panel panel-default"> <div class="panel-heading"> Por favor selecione o vídeo </div> <div class="panel-body"> <div class="row"> <div class="col-lg-6"> <form action="processa/proc_cad_albumvideo2.php?id=<?php echo $agid ?>" method="POST" enctype="multipart/form-data" name="upload"> <div class="form-group"> <input type="file" name="arquivo" id="arquivo" value="arquivo"/> </div> <div class="form-group"> <input name="enviar" class="btn btn-primary" type="submit" id="enviar" value="Enviar"> </div> <div class="alert alert-danger" role="alert" style='margin-top:20px'> Esta operação poderá ser demorada, dependendo do tamanho do ficheiro a enviar e das suas condições de ligação à rede. <br/> <br/> Por favor seja paciente e não reinicie a página! </div> </form> </div> </div> </div> </div> </div> </div> </div> <script src="../js/jquery-3.2.1.slim.min.js"></script> <script src="../js/popper.min.js"></script> <script src="../js/bootstrap.min.js"></script> </body> </html> E este é o código para efetuar o upload e gravação na BD
      <?php ini_set('display_errors', 1); ini_set('display_startup_erros', 1); error_reporting(E_ALL); session_start(); include_once "../../conexao.php"; $adate = date('Y-m-d H:i:s'); $status = 'process'; $arquivo = $_FILES['arquivo']; $albumid = $_REQUEST['id']; $pasta = '../../videos/'; $resulta = mysqli_query($conectar, "SELECT * FROM tbl_albumvideo WHERE albumid='$albumid'"); $linhas = mysqli_fetch_assoc($resulta); $local = $linhas["local"]; $arqnome = $_FILES['arquivo']['name']; $ano = $linhas['ano']; $extensao = @end(explode('.', $arqnome)); $novonome = time() . "-" . rand() . "." . $extensao; $tmp = $_FILES['arquivo']['tmp_name']; $file = $pasta . $novonome; if (move_uploaded_file($tmp, $file)) { $query = mysqli_query($conectar, "INSERT INTO videos (video_name, local, ano,aid) VALUES ('$novonome','$local', '$ano', '$albumid')") or die(mysqli_error($conectar)); if ($query) { echo "<META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://(...)/addgalleryvideo.php'> <script type=\"text/javascript\"> alert(\" O vídeo foi guardado com sucesso.\"); </script>";} else {echo " <META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://(...)/addgalleryvideo.php'> <script type=\"text/javascript\"> alert(\" O Vídeo não foi guardado.\"); </script> "; } } Linha 14 : $arquivo = $_FILES['arquivo']; 
      Linha 21: $arqnome = $_FILES['arquivo']['name'];
      Linha 27: $tmp = $_FILES['arquivo']['tmp_name'];
       
      Desde já muito obrigado.
    • By juninhogpe
      Boa tarde.
      Estou com problemas ao subir arquivos no formato MP3 com o código abaixo. Sempre usei ele e hoje apenas aparece erro.
      Abaixo o código:
       
      $titulo = $_POST['titulo']; if ($titulo != ""){ $texto = $_POST['texto']; $padre = $_POST['padre']; $data = date("Y-m-d", strtotime($_POST['data'])); $audio = isset($_FILES["audio"]) ? $_FILES["audio"] : FALSE; $arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE; if($arquivo && $audio){ if(!preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp)$/", $arquivo["type"])){ echo utf8_encode("<script> alert ('Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Cadastro não foi realizado.');</script>"); } if(!preg_match("/^audio\/(mp3|MP3)$/", $audio["type"])){ echo utf8_encode("<script> alert ('Arquivo em formato inválido! erro no upload do audio. Cadastro não foi realizado.');</script>"); } else{ preg_match ("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext); $dd = date("msdYiH"); $imagem_nome = $dd. "." . $ext[1]; $imagem_dir = "../am/" . $imagem_nome; $up = move_uploaded_file($arquivo["tmp_name"], $imagem_dir); preg_match ("/\.(mp3|MP3|wav|wma){1}$/i", $audio["name"], $ext); $dd = date("msdYiH"); $audio_nome = $dd. "." . $ext[1]; $audio_dir = "../am/" . $audio_nome; $up_audio = move_uploaded_file($audio["tmp_name"], $audio_dir); if ($up){ $sql = utf8_decode("INSERT INTO palavra (titulo, foto, data, audio, texto, padre) VALUES ('$titulo','$imagem_nome', '$data','$audio_nome', '$texto', '$padre')"); } } }else echo utf8_encode("<script> alert ('Erro no upload.');</script>"); if($conn->query($sql) === TRUE){ echo utf8_encode("<script> alert (\"Cadastro realizado com sucesso.\");</script>"); echo utf8_encode('<script>window.location="palavra.php";</script>'); } else{ echo "Erro: " . $sql . "<br />" .$conn->error; echo utf8_encode('<script>window.location="palavra.php";</script>'); } }  
      O que estou fazendo de errado?
      Obrigado.
    • By Alberto Nascimento
      Como consigo salvar o "novo nome" da imagem que foi enviada para o servidor por meio de UPLOAD no mesmo registro em que estão sendo salvos os dados do formulário no banco de dados através do PHP.
      Consigo salvar os campos do formulário, mas o nome que é gerado ao enviar a imagem, não estou conseguindo.
       
      <?php include 'conecta_mysql.inc'; if(isset($_FILES['arquivo']['name']) && $_FILES["arquivo"]["error"] == 0) { echo "<center>Você enviou o arquivo: <strong>" . $_FILES['arquivo']['name'] . "</strong><br /></center>"; echo "<center>Seu tamanho é: <strong>" . $_FILES['arquivo']['size'] . "</strong> Bytes<br /><br /></center>"; $arquivo_tmp = $_FILES['arquivo']['tmp_name']; $nome = $_FILES['arquivo']['name']; $extensao = strrchr($nome, '.'); $extensao = strtolower($extensao); if(strstr('.jpg;.jpeg;.gif;.png', $extensao)) { $novoNome = md5(microtime()) . '.' . $extensao; $destino = 'imagens/' . $novoNome; if( @move_uploaded_file( $arquivo_tmp, $destino )) { echo "<br>"; echo "<img src=\"" . $destino . "\" />"; echo "<br>"; } else echo "Erro ao salvar o arquivo. Aparentemente você não tem permissão de escrita.<br />"; } else echo "Você poderá enviar apenas arquivos \"*.jpg;*.jpeg;*.gif;*.png\"<br />"; } else { echo "<center><h1>Você não enviou nenhum arquivo!</h1></center>"; echo "<center><br><h3><a href='javascript:window.history.go(-1)'>Clique aqui para volta.</a></h3></center>"; } $codphoto = $_POST['codphoto']; $nome = $_POST['nome']; $datafotografia = $_POST['datafotografia']; $photography = $_POST['novoNome']; $sql = "INSERT INTO photograph VALUES"; $sql .= "( '$codphoto', '$nome', '$datafotografia', '$photography' )"; if ($conexao->query($sql) === TRUE) { echo "<center> <h2> Obrigado !! Envio realizado com sucesso !! </h2></center>"; echo "<center><br><h3><a href='LINK_SITE'>ENVIAR OUTRA FOTOGRAFIA</a></h3></center>"; } else { echo "Erro: " . $sql . "<br>" . $conexao->error; } $conexao->close();  
    • By Renan Daniel
      Seguinte Galera, Sou Iniciante, Com Muito Custo Cheguei num formulário que funciona, ele esta todo no mesmo arquivo(praticamente)
      Porém eu gostaria de saber como eu faço para inserir uma seleção de arquivo, para o cliente upar uma foto.
      Caso Alguém Queira me Ajudar Agradeço, Segue o Código : 
      <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Registrar Uma Conta</title> <link rel="stylesheet" href="style.css"/> </head> <body style="background-image: url('bg7.jpg'); background-size: cover; background-position: top center;"> <?php require('db.php'); // When form submitted, insert values into the database. if (isset($_REQUEST['username'])) { // removes backslashes $username = stripslashes($_REQUEST['username']); //escapes special characters in a string $username = mysqli_real_escape_string($con, $username); $email = stripslashes($_REQUEST['email']); $email = mysqli_real_escape_string($con, $email); $password = stripslashes($_REQUEST['password']); $password = mysqli_real_escape_string($con, $password); $numero= stripslashes($_REQUEST['numero']); $numero = mysqli_real_escape_string($con, $numero); $data_nascimento = stripslashes($_REQUEST['data_nascimento']); $data_nascimento = mysqli_real_escape_string($con, $data_nascimento); $cpf = stripslashes($_REQUEST['cpf']); $cpf = mysqli_real_escape_string($con, $cpf); $rg = stripslashes($_REQUEST['rg']); $rg = mysqli_real_escape_string($con, $rg); $endereco_principal = stripslashes($_REQUEST['endereco_principal']); $endereco_principal = mysqli_real_escape_string($con, $endereco_principal); $banco_principal = stripslashes($_REQUEST['banco_principal']); $banco_principal = mysqli_real_escape_string($con, $banco_principal); $agencia_principal = stripslashes($_REQUEST['agencia_principal']); $agencia_principal = mysqli_real_escape_string($con, $agencia_principal); $ope_principal = stripslashes($_REQUEST['ope_principal']); $ope_principal = mysqli_real_escape_string($con, $ope_principal); $conta_principal = stripslashes($_REQUEST['conta_principal']); $conta_principal = mysqli_real_escape_string($con, $conta_principal); $nome_terceiro = stripslashes($_REQUEST['nome_terceiro']); $nome_terceiro = mysqli_real_escape_string($con, $nome_terceiro); $cpf_terceiro = stripslashes($_REQUEST['cpf_terceiro']); $cpf_terceiro = mysqli_real_escape_string($con, $cpf_terceiro); $agencia_terceiro = stripslashes($_REQUEST['agencia_terceiro']); $agencia_terceiro = mysqli_real_escape_string($con, $agencia_terceiro); $ope_terceiro = stripslashes($_REQUEST['ope_terceiro']); $ope_terceiro = mysqli_real_escape_string($con, $ope_terceiro); $conta_terceiro = stripslashes($_REQUEST['conta_terceiro']); $conta_terceiro = mysqli_real_escape_string($con, $conta_terceiro); $create_datetime = date("Y-m-d H:i:s"); $query = "INSERT into `users3` (username, password, email, numero, data_nascimento, cpf, rg, endereco_principal, banco_principal, agencia_principal, ope_principal, conta_principal, nome_terceiro, cpf_terceiro, agencia_terceiro, ope_terceiro, conta_terceiro, create_datetime) VALUES ('$username', '$password', '$email', '$numero', '$data_nascimento', '$cpf', '$rg', '$endereco_principal', '$banco_principal', '$agencia_principal', '$ope_principal', '$conta_principal', '$nome_terceiro', '$cpf_terceiro', '$agencia_terceiro', '$ope_terceiro', '$conta_terceiro','$create_datetime')"; $result = mysqli_query($con, $query); if ($result) { echo "<div class='form'> <h3>Você Foi Registrado com Sucesso.</h3><br/> <p class='link'><a href='#'>Login</a></p> </div>"; } else { echo "<div class='form'> <h3>Você Preencheu Dados Errados</h3><br/> <p class='link'>Volara Para <a href='index.php'>Tentar Novamente</a> Agora.</p> </div>"; } } else { ?> <form class="form" action="" method="post" enctype="multipart/form-data"> <center><img src="1.PNG" style=" width: 250px; "></center> <h1 class="login-title">Dados Pessoais</h1> <h3>Seus Dados São Protegidos.</h3> <input type="text" class="login-input" name="username" placeholder="Nome Completo" required /> <input type="text" class="login-input" name="email" placeholder="Seu Email"> <input type="password" class="login-input" name="password" placeholder="Sua Senha"> <input type="text" class="login-input" name="numero" placeholder="N° de Telefone"> <input type="text" class="login-input" name="data_nascimento" placeholder="Sua Data de Nascimento" required /> <input type="text" class="login-input" name="cpf" placeholder="Seu Cpf" required /> <input type="text" class="login-input" name="rg" placeholder="Seu Rg"required /> <input type="text" class="login-input" name="endereco_principal" placeholder="Seu Endereço"required /> <h1 class="login-title">Seus Dados Bancários</h1> <input type="text" class="login-input" name="banco_principal" placeholder="Nome do Seu Banco"required /> <input type="text" class="login-input" name="agencia_principal" placeholder="Nº Da Agência"required /> <input type="text" class="login-input" name="ope_principal" placeholder="Nº da Operação"required /> <input type="text" class="login-input" name="conta_principal" placeholder="Nº da Conta"required /> <h1 class="login-title">Dados Bancários de Terceiro</h1> <h3>Caso Queira Receber os Redimentos em Nome de Terceiros ( Mãe, Esposa, Filhos..)Deve Cadastrar a Conta Abaixo, e Deve Anexar Um Documento Reconhecido em Cartório Autorizando.</h3> <input type="text" class="login-input" name="nome_terceiro" placeholder="Nome do Titular"required /> <input type="text" class="login-input" name="agencia_terceiro" placeholder="Nº Da Agência"required /> <input type="text" class="login-input" name="ope_terceiro" placeholder="Nº Da Operação"required /> <input type="text" class="login-input" name="conta_terceiro" placeholder="Nº Da Conta"required /> <center><h3>Carregue a Autorização</h3></center> <input type="file" class="login-input" name="arquivo" placeholder="Carregar Autotização"required /> <input type="submit" name="submit" value="REGISTRAR" class="login-button"> <center style=" padding-top: 10px; "><a class="login-button" href="">Voltar Para o Inicio</a></center> </form> <?php } ?> </body> </html> Agradeço desde já a ajuda.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.