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

Upload não funciona


Emerson Barcellos

Pergunta

Bom Dia!

Alguém pode me ajudar.

Não entendo porque nenhum script de upload não funciona.

Aqui na minha máquina funciona direitinho mas lá no domínio "NÂO!!!",

Agora estou usando esse abaixo:

<?php
$foto = $_REQUEST["foto"];
$arquivo = $_REQUEST["arquivo"];

// Prepara a variável caso o formulário tenha sido postado
$arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;

$config = array();
// Tamano máximo da imagem, em bytes
$config["tamanho"] = 106883;
// Largura Máxima, em pixels
$config["largura"] = 350;
// Altura Máxima, em pixels
$config["altura"] = 250;
// Diretório onde a imagem será salva
$config["diretorio"] = "fotos/";

// Gera um nome para a imagem e verifica se já não existe, caso exista, gera outro nome e assim sucessivamente..
// Função Recursiva
function nome($extensao)
{
    global $config;

    // Gera um nome único para a imagem
    $temp = substr(md5(uniqid(time())), 0, 10);
    $imagem_nome = $temp . "." . $extensao;
    
    // Verifica se o arquivo já existe, caso positivo, chama essa função novamente
    if(file_exists($config["diretorio"] . $imagem_nome))
    {
        $imagem_nome = nome($extensao);
    }

    return $imagem_nome;
}

if($arquivo)
{
    $erro = array();
    
    // Verifica o mime-type do arquivo para ver se é de imagem.
    // Caso fosse verificar a extensão do nome de arquivo, o código deveria ser:
    //
    // if(!eregi("\.(jpg|jpeg|bmp|gif|png){1}$", $arquivo["name"])) {
    //      $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo"; }
    //
    // Mas, o que ocorre é que alguns usuários mal-intencionados, podem pegar um vírus .exe e simplesmente mudar a extensão
    // para alguma das imagens e enviar. Então, não adiantaria em nada verificar a extensão do nome do arquivo.
    if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $arquivo["type"]))
    {
        $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo";
    }
    else
    {
        // Verifica tamanho do arquivo
        if($arquivo["size"] > $config["tamanho"])
        {
            $erro[] = "Arquivo em tamanho muito grande! A imagem deve ser de no máximo " . $config["tamanho"] . " bytes. Envie outro arquivo";
        }
        
        // Para verificar as dimensões da imagem
        $tamanhos = getimagesize($arquivo["tmp_name"]);
        
        // Verifica largura
        if($tamanhos[0] > $config["largura"])
        {
            $erro[] = "Largura da imagem não deve ultrapassar " . $config["largura"] . " pixels";
        }

        // Verifica altura
        if($tamanhos[1] > $config["altura"])
        {
            $erro[] = "Altura da imagem não deve ultrapassar " . $config["altura"] . " pixels";
        }
    }

    if(!sizeof($erro))
    {
        // Pega extensão do arquivo, o indice 1 do array conterá a extensão
        preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);
        
        // Gera nome único para a imagem
        $imagem_nome = nome($ext[1]);

        // Caminho de onde a imagem ficará
        $imagem_dir = $config["diretorio"] . $imagem_nome;

        // Faz o upload da imagem
        move_uploaded_file($arquivo["tmp_name"], $imagem_dir);
    }
}
?>
<html>
<head>
<title>Enviar Foto</title>
<style type="text/css">
BODY, TD {font-family: verdana; font-size: 10pt; color: white}
</style>
</head>

<body bgcolor=black link=red vlink=red alink=red>

<center><font size=4>Envio de Foto</font><BR>
<?php
// Imagem foi enviada com sucesso, mostra mensagem de SUCESSO
if($arquivo && !sizeof($erro))
{
    echo "<img src=\"" . $imagem_dir . "\" border=0><BR><BR>Sua foto foi enviada com sucesso!<br>Deseja enviar outra? <a href=\"foto.php\">Clique aqui</a>";
}

// Ocorreu algum erro ou ainda o formulário não foi postado
else
{
?>
<form action="<?php echo $PHP_SELF?>" method=post  ENCTYPE="multipart/form-data">
Envie sua foto em formato gif, jpg, bmp ou png.<BR>
A imagem não deve ter mais que <?php echo $config["tamanho"] ?> bytes e deve ter <?php echo $config["largura"] . "x" . $config["altura"] ?> pixels.<BR>
<table border=0 cellpadding=2 cellspacing=1 align=center>
<?php
if(sizeof($erro))
{
    echo "<tr><td colspan=2 bgcolor=red><B><U>Ocorreu(am) o(s) seguinte(s) erro(s):</u><BR>";
    foreach($erro as $err)
    {
        echo " - " . $err . "<BR>";
    }
    echo "</B></td></tr>";
}
?>
<tr><td align=center>Enviar Foto: <input type=file size=30 name=foto></td></tr>
<tr><td align=center><input type=submit value="Ok!"></td></tr>
</table>
</form>
<?php } ?>
<br><font face=arial size=1 color=white>Programado por Alfred R. Baudisch - 14/01/2004. Versão 1.2</font>
</body>
</html>

POR FAVOR ALGUÉM ME AJUDA!!!

já dei permissão 777 na pasta "Fotos/"

Editado por Jonathan Queiroz
Modificar título para descrever melhor a dúvida e adicionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...