Ir para conteúdo
Fórum Script Brasil
  • 0

upload de imagens


tetano

Pergunta

Seguinte baixei esse código da internet não me recordo onde, acho que é daqui mesmo, mas coloquei ele rodando no xampp na minha maquina, roda perfeito, fui coloca-lo em minha hospedagem ele deu o seguinte erro quando eu uplei uma imagem, só que o mais estranho é que a imagem aparece na página do thumbs e na pasta também, só que o erro aparece logo abaixo da mensagem [nome imagem]uplada com sucesso..

Se alguém puder me dar uma luz não manjo muito de php estou aprendendo, as permissões na pasta estão pra todos os arquivos 777, se alguém tiver uma noção o script ta rodando na minha pagina acesse www.franciscolleal.com/upload/enviar.php senha 1234 acesse uple uma imagem e veja o erro ai de baixo..

Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in /home/leal/public_html/upload/upload.php on line 17

segue os principais códigos

index.php

<?php
# Inicia uma Sessao
@session_start();
?>
<html>
<head>
<title>Galeria</title>
<!-- O arquivo lightbox.css faz parte da biblioteca e
é necessária sua inclusão-->
<link rel="stylesheet" href="css/lightbox.css"
type="text/css" media="screen" />
<link rel="stylesheet" href="css/galeria.css"
type="text/css" media="screen" />
<!-- incluindo os arquivos da biblioteca LightBox-->
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript"
src="js/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
</head>
<body>
<p>&nbsp;</p>
<p><a href="enviar.php">Enviar fotos para Galeria</a></p>
<p>&nbsp;</p>
<hr>
<!-- Incluindo o programa que le o diretorio de fotos -->
<?php include 'lerdir.php'; ?>
</body>
</html>
enviar.php
<!-- incluindo Login de usuario -->
<?php include 'login.php';?>
<html>
<head>
<title>Galeria</title>
<link rel="stylesheet" href="css/galeria.css" type="text/css" media="screen" />
</head>
<body>
<?php
# 1 Se a Sessao Logado não existir exibe o formulario de login
if(!isset($_SESSION['logado']))
{
?>
<form name="login" method="post">
<label>Password:</label>
<input type="password" name="senha">
<input type="submit" value="login">
</form>
<p>&nbsp;</p>
<p><a href="index.php">Visitar Galeria</a></p>
<?php
exit;
# 2 Se a sessao existir exibe o formulario de upload
}else{
?>
<p>
<a href="index.php">Visitar Galeria</a> |
<a href="enviar.php?logout=true">Logout</a> |
</p>
<hr>
<p>&nbsp;</p>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="fotos[]" /><Br>
<input type="file" name="fotos[]" /><br>
<input type="file" name="fotos[]" /><br>
<input type="file" name="fotos[]" /><br><br>
<input type="submit" value="enviar" />
</form>
<p>&nbsp;</p>
<!-- 3 Incluindo o programa que faz o upload das imagens -->
<?php include 'upload.php'; ?>
<p>&nbsp;</p>
<?php }?>
</body>
</html>
lerdir.php
<?php
# Diretorio de fotos
$dir = "fotos";
# Extensoes permitidas
$exts = array('jpg','png','jpeg','gif','bmp');
if (is_dir($dir)) {
if ($d = opendir($dir))
{
while (($file = readdir($d))!== false)
{
if (filetype($dir.'/'.$file) == 'file')
{
# recupera a extensao do arquivo
$extensao = explode(".", $file);
for($i=0; $i<=count($exts)-1; $i++)
{
if($extensao[1] == $exts[$i])
{
# Criando o link da imagem pra o lightbox e exibindo a thumb
echo "<a href=\"$dir/{$file}\" rel=\"lightbox[roadtrip]\">";
echo "<img src=\"thumb.php?img=$dir/{$file}\" class=\"thumb\"></a>";
}
}
}
}
closedir($d);
}
}
?>
upload.php
<?php
$larguraMax = 2000; // largura em pixels
$alturaMax = 2000; // altura em pixels
$tamanhoMax = 100000000; // tamanho em bytes
$formatos = "pjpeg|jpeg|png|gif|bmp|x-png|jpg"; // extensoes permitidas
# Criando as mensagens de erro
$erro[] = "Tamanho do arquivo maior que o permitido [".($tamanhoMax/1000)." kb].";
$erro[] = "A Largura da imagem maior que o permitido.";
$erro[] = "A Altura da imagem maior que o permitido.";
$erro[] = "O Arquivo já existe no diretório.";
$erro[] = "Formato do arquivo não permitido ou inválido.";
if(isset($_FILES["fotos"]) && !empty($_FILES["fotos"]))
{
foreach ($_FILES["fotos"]["name"] as $key => $name)
{
$arquivo = $_FILES["fotos"];
$dimensoes = getimagesize($arquivo["tmp_name"][$key]);<<<<<AQUI ESTA O ERRO!!!!!!!!!
$nomefoto = strtolower($_FILES["fotos"]["name"][$key]);

#Verificando se a imagem foi enviada
if($arquivo["name"][$key] != "")
{
# Retirando espacos no nome do arquivo
$espacos = explode(" ",$nomefoto);
if(count($espacos) > 1)
{
$nomefoto = strtolower(ereg_replace(' ', '_', $nomefoto));
}
# Se o Tamanho do arquivo é permitido
if($arquivo["size"][$key] > $tamanhoMax)
{
# Adiciona o erro no array erros[]
$erros[] = "[$nomefoto] $erro[0]";
}
# Se a Largura do arquivo é permitida
if($dimensoes[0] > $larguraMax)
{
$erros[] = "[$nomefoto] $erro[1]";
}
# Se a Altura do arquivo é permitida
if($dimensoes[1] > $alturaMax)
{
$erros[] = "[$nomefoto] $erro[2]";
}
# Verifica se o arquivo já existe no diretorio
if(file_exists("fotos/$nomefoto"))
{
$erros[] = "[$nomefoto] $erro[3]";
}
# Verifica se extensao é pertida
if(!eregi("^image\/($formatos)$", $arquivo["type"][$key]))
{
$erros[] = "[$nomefoto] $erro[4]".$arquivo["type"][$key];
}
# O array erros não tiver nenhum indice o upload é permitido/realizado
if(!isset($erros))
{
$imagem_dir = "fotos/".$nomefoto;
move_uploaded_file($_FILES["fotos"]["tmp_name"][$key], $imagem_dir);
$sucesso[] = "[$nomefoto] upload com sucesso.";
}
}
}
# Verifica se existem erros no array
if(isset($erros))
{
echo "<ul class='erro'>";
foreach($erros as $erro)
{
echo "<p><span>$erro</span></p>";
}
echo "</ul>";
}
# Verifica quais imagens tiveram sucesso no upload
if(isset($sucesso))
{
echo "<ul class='sucesso'>";
foreach($sucesso as $up)
{
echo "<p><span>$up</span></p>";
}
echo "</ul>";
}
}
?>

AGRADEÇO DESDE já A BOA VONTADE DE vocês..!!!!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

tetano, o script está correto.

O problema foi na imagem que você escolheu para fazer o upload. Provavelmente ela esta com algum defeito.

Entrei no seu site, fiz o teste e foi feita o upload da imagem sem problemas.

Tente com outras fotos. Se elas tiverem mais de 2mb de tamanho, terá que fazer uma edição no arquivo php.ini

Qualquer dúvida, é só reportar.

[]'s.

Link para o comentário
Compartilhar em outros sites

  • 0
tetano, o script está correto.

O problema foi na imagem que você escolheu para fazer o upload. Provavelmente ela esta com algum defeito.

Entrei no seu site, fiz o teste e foi feita o upload da imagem sem problemas.

Tente com outras fotos. Se elas tiverem mais de 2mb de tamanho, terá que fazer uma edição no arquivo php.ini

Qualquer dúvida, é só reportar.

[]'s.

EU ESTOU COM O MESMO PROBLEMA, POREM O MEU já APARECE BEM ANTES DE SELECIONAR QUALQUER IMAGEM:

Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in /home/storage/7/c8/06/pierserv/public_html/catalogos/cadastro-barra-progresso.php on line 121

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...