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

Erro ao fazer upload de fotos


Luis Dalmolin

Pergunta

ai galera!

assim, esse codigo sempre deu certo... mas agora do nada ele parou de funcionar, não ta mais fazendo o upload da foto...

$arquivo = $_FILES["fotoalbum"];

$pasta_dir = "../albuns/";

$arquivo_nome = $pasta_dir.$arquivo["name"];

$query = "SELECT id FROM fotos ORDER BY id DESC LIMIT 1";

$result = @mysql_query($query);

while ($row = mysql_fetch_array($result)) {

$t = $row["id"] + 1;

$name = "$t.jpg";

}

move_uploaded_file($arquivo["tmp_name"], $arquivo_nome);

$newname = $pasta_dir.$name;

$origem = basename( $arquivo_nome );

$destino = basename( $newname );

$destfolder = realpath( dirname( $newname ) );

if ( file_exists( $origem ) && ( ( fileperms( $destfolder ) & 0x0080 ) == 0x0080 ) ){

rename( $origem , $newname );

}

$id = $_POST["id_album"];

$legenda = $_POST["legenda"];

$sql = "INSERT INTO fotos (id_album, legenda, foto) VALUES (

'".$id."' ,

'".$legenda."' ,

'".$name."'

)" ;

if(mysql_query($sql, $conexao)) {

echo "<script>alert('Sua foto foi inserida com sucesso!')</script>";

} else {

echo "<script>alert('Erro ao inserir foto \n\npor favor tenta novamente!')</script>";

}

por que sera? sera que tem a ver com o servidor?

Editado por Luis Dalmolin
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
por que sera? sera que tem a ver com o servidor?

Amigo, tenta executar esse código aqui, ele é o seu mesmo código que eu adicionei algumas mensagens de erro, se não funcionar você saberá onde está o problema:

try {
    if ( isset( $_FILES[ "fotoalbum" ] ) ){
        $arquivo            = $_FILES[ "fotoalbum" ];
        $pasta_dir        = "../albuns";
        $arquivo_nome    = sprintf( "%s/%s" , $pasta_dir , $arquivo[ "name" ] );
        $query            = "SELECT id FROM fotos ORDER BY id DESC LIMIT 1";

        /**
         * Sempre verifique se sua consulta foi executada corretamente, adminir que uma consulta sempre vá retornar
         * um recurso é um erro que pode custar a segurança da sua aplicação.
         */
        if ( ( $result = @mysql_query( $query ) ) ){
            $name = null;

            /**
            * Quando você define a variável $name dentro de um bloco (nesse caso o bloco while) ela é visível apenas para o bloco que a definiu.
            * Quando você precisar usar uma variável que precisa ser visível fora de um bloco você deve defini-la antes de utilizá-la
            */
            while ( ( $row = mysql_fetch_array( $result ) ) ){
                $t        = $row[ "id" ] + 1;
                $name    = sprintf( "%s.jpg" , $t );
            }

            if ( file_exists( $arquivo[ "tmp_name" ] ) ){
                move_uploaded_file( $arquivo[ "tmp_name" ] , $arquivo_nome );

                $newname = sprintf( "%s/%s" , $pasta_dir , $name );
                $origem = basename( $arquivo_nome );
                $destino = basename( $newname );
                $destfolder = realpath( dirname( $newname ) );

                if ( file_exists( $origem ) ){
                    if ( ( fileperms( $destfolder ) & 0x0080 ) == 0x0080 ){
                        rename( $origem , $newname );
                    } else {
                        throw new Exception( "Não foi possível renomear o arquivo." );
                    }
                } else {
                    throw new Exception( "O arquivo de origem não existe" );
                }

                $id        = $_POST[ "id_album" ];
                $legenda    = $_POST[ "legenda" ];

                $sql = "INSERT INTO fotos  (id_album, legenda, foto) VALUES (
                    '".$id."' ,
                    '".$legenda."' ,
                    '".$name."'
                )";

                if( !mysql_query( $sql , $conexao ) ){
                    throw new Exception( "Erro ao inserir o registro" );
                }
            } else {
                throw new Exception( "Não foi possível encontrar o arquivo enviado" );
            }
        } else {
            throw new Exception( "Nenhum registro encontrado" );
        }

        printf( "<script>alert('Sua foto foi inserida com sucesso!')</script>" );
    } else {
        throw new Exception( "A foto não foi enviada" );
    }
} catch ( Exception $e ){
    printf( "<script>alert( 'Erro ao inserir foto \n\npor favor tenta novamente!\n\nErro: %s' )</script>" , $e->getMessage() );
}

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...