Ir para conteúdo

Arquivado

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

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;
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá uma lida nesta página, mais especificamente onde está falando sobre "Undefined Variable" que é um dos vários erros que você encontrou (pode ser que os outros erros aparecem por causa dessas variáveis não definidas):

http://rberaldo.com.br/as-mensagens-de-erros-mais-comuns-do-php/

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por AlexandreHenrique
      Olá pessoal. preciso de uma ajuda com o meu projeto de upload.
      O projeto de upload roda no IIS + Php;
      Tenho um script que ta enviando  o arquivo para o diretório correto.
      O problema é que ao tentar acessar esse arquivo via URL, o anexo não abre  e exibe a mensagem abaixo.
       

      Notei que o arquivo ao cair no DIR, ele entra sem permissões (vi em propriedades), se eu editar o mesmo alterando as permissões, ele carrega pela url do meu site.
      Quero que o arquivo enviado pelo script caia no DIR correta com as devidas permissões pra eu poder ler no navegador via URL;
       
      Já tentei resolver de toda forma mas nao tive sucesso;.
      No Apache isso é mais simples, mas no IIS ta complicado;
       
       
       
      Alguem pode me dá uma dica?
    • Por Caio Vargas
      Fala pessoa tudo tranquilo ?
      estou com um problema eu fiz um sistema de upload onde tem a marca dagua  o problema e que quando o cadastro da capa e pequena a imagem da marca dagua fica grande
      e qauando a capa e grande  a imagem da marca dagua fica pequena alguem poderia me ajudar 
    • Por mateus.andriollo
      Olá,
      Gostaria de saber se alguem pode me ajudar.
      Meu PHP esta na pasta public_html em um CPanel, quero saber se é possível armazenar em pasta fora da pasta  pública, por segurança mesmo...
      Faço isso em ASP, ai chamo a imagem por um fso, funciona mas queria saber se tem como no PHP.
    • Por DeniseAlencar
      Boar tarde pessoal estou fazendo um teste com upload de imagens gravando no banco de dados porem quando cadastro uma imagem com o nome "foto.jpg" e depois cadastro a mesma imagem com o mesmo nome, no banco de dados aparece dois registros com nomes iguais mas gostaria que os nomes fossem diferentes.
       
      E na pasta arquivos aparece uma unica imagem gostaria que quando cadastrasse fotos iguais o nome mudasse tipo foto.jpg , foto2.jpg  etc (isso automaticamente) vou postar o codigo .
      <?php $diretorio = "arquivos/"; if(!is_dir($diretorio)){ echo "Pasta $diretorio não existe";}else{ $arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE; for ($controle = 0; $controle < count($arquivo['name']); $controle++){ $destino = $diretorio."/".$arquivo['name'][$controle]; $nome_foto = $arquivo['name'][$controle]; if(move_uploaded_file($arquivo['tmp_name'][$controle], $destino)){ $sql="INSERT INTO galeria (arquivo) VALUES ('$nome_foto')"; $qry = mysqli_query($conexao,$sql); echo "<head><meta HTTP-EQUIV='refresh' CONTENT='0;URL=index.php'></head>"; }else{ echo "Erro ao realizar upload"; } } } ?>  
    • Por Sapinn
      Estou precisando salvar fotos dos usuários de um sistema e não estou conseguindo fazer com OO já assisti video aulas e li algumas matérias mas sempre dá erro. Alguém sabe algum jeito de se fazer?? Eu até tentei mas fica sempre com erro, vou postar aqui talvez tenha algo que eu esteja fazendo errado.
       
      class para salvar a foto:
         private function salvarFoto($foto){         $fotos = $_FILES['foto_admin'];         $fotoDir = "imagens/fotos_admins/";         $fotoPath = $fotoDir . basename($foto['foto_admin']['name']);         $fotoTmp = $foto['foto_admin']['tmp_name'];         if(move_uploaded_file($fotoTmp, $fotoPath)):             return $fotoPath;         else:             return false;         endif;     } E estou chamando ela assim:
       $upload = $this->salvarFoto($_FILES);                 if(gettype($upload) == 'string'):                     $dados['foto_admin'] = $upload;                 endif;  
      E o erro é o seguinte: move_uploaded_file(imagens/fotos_admins/sapinn.jpg): failed to open stream: No such file or directory in
       
      Não sei o que está errado a pasta imagens/fotos_admins está dentro da minha pasta Controller
×

Informação importante

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