Ir ao conteúdo
  • Cadastre-se

Erro ao upar imagem no banco / php-mysql


Posts recomendados

Olá amigos, estou tendo o seguinte erro ao tentar upar uma imagem no BANCO.

Warning: move_uploaded_file(foto/1476378961.jpg): failed to open stream: Permission denied in C:\Program Files\VertrigoServ\www\db\admin\upload_venda.php on line 51.

 

Alguém ai poderia me ajuda?

Segue o código em PHP

 

<?php
include("segurança.php");
PaginaSegura();
?>
<!DOCTYPE html>
<html lang="pt-br">
    <head>
        <meta charset="utf-8">
        <link rel="stylesheet" href="../css/style(admin).css" />
    </head>
    <body>
    <a href="index_venda_img.php"><input class="botao" type="button" name="novo" value="Tentar Novamente"/></a>
        <?php
            include_once("../conexao.php");
            $arquivo     = $_FILES['arquivo']['name'];
            $Cod_vd = $_POST['Cod_vd'];
            
            $_UP['pasta'] = 'foto/';
            $_UP['tamanho'] = 1024*1024*100; //5mb
            $_UP['extensoes'] = array('png', 'jpg', 'jpeg');
            $_UP['renomeia'] = false;
            $_UP['erros'][0] = "<font color='red'>Não houve erro";
            $_UP['erros'][1] = "<font color='red'>A Foto no upload é maior que o limite do PHP";
            $_UP['erros'][2] = "<font color='red'>A Foto ultrapassa o limite de tamanho especificado no HTML";
            $_UP['erros'][3] = "<font color='red'>O upload da Foto foi feito parcialmente";
            $_UP['erros'][4] = "<font color='red'>Não foi feito o upload da Foto";

            if($_FILES['arquivo']['error'] != 0){
                die("<center><IMG width='100%' SRC='../images/error.png'/><br/>". $_UP['erros'][$_FILES['arquivo']['error']]);
                exit;
            }
            @$extensao = strtolower(end(explode('.', $_FILES['arquivo']['name'])));
            if(array_search($extensao, $_UP['extensoes'])=== false){        
                echo "<center><IMG width='100%' SRC='../images/error.png'/><br/>
                    <font color='red'>A Imagem não foi cadastrada, extensão inválida.";
            }
            else if ($_UP['tamanho'] < $_FILES['arquivo']['size']){
                echo "<center><IMG width='100%' SRC='../images/error.png'/><br/>
                <font color='red'>Imagem muito grande.";
            }
            else{
                if($_UP['renomeia'] == true){
                    $nome_final = time().'.jpg';
                    $nome_final1 = 'admin/foto/'.time().'.jpg';
                }else{
                    $nome_final = time().'.jpg';
                    $nome_final1 = 'admin/foto/'.time().'.jpg';
                }
                if($_POST["Cod_vd"] == ""){
                echo "<center><p><font color='red'>Código nao inserido!</font>";
                @$rsp == FALSE;}
                if(move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta'].$nome_final)){
                    $query =mysql_query("UPDATE venda SET Cod_vd='$Cod_vd', Foto_vd='$nome_final1'
                                         WHERE Cod_vd='$Cod_vd'");
                    header("Location: http://localhost/db/admin/venda_enviado.php");
                }
                else{
                    echo "<center><IMG width='100%' SRC='../images/error.png'/><br/>
                            <font color='red'>Imagem não foi cadastrada com Sucesso.";
                }
            }
        ?>  
    </body>
</html>

 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@GabrielGMT Basicamente ele diz que é erro de permissão... mas não sei exatamente onde.

Já aproveito e pergunto: Tem real necessidade de enviar imagens para o banco de dados? Isso só vai deixar ele mais lento, consultas mais lentas... prejudicando o desempenho.

 

Upe as imagens para uma pasta do servidor no banco de dados, apenas guarde o nome do arquivo de imagem e a url dela. assim não há problemas.

Vejo também que está usando muitos atributos inline. Evite estes atributos ainda mais os obsoletos como center, font

Link para o comentário
Compartilhar em outros sites

O certo a você fazer é colocar o nome da imagem no banco por exemplo.

$imagem = fotinho_do_meu_gato.jpg
mysqli_query($conexao,"insert into banco_imagens(imagem) values ('$imagem');

MAS o legal seria criar um nome randomico dependendo da data e horário pra nunca ter uma igual, caso se interesse eu posto aqui.

Depois você retorna em um select pra um img:

<?php
	$select = mysqli_query($conexao,"select * from banco_imagens);
	while($imagem = mysqli_fetch_assoc($select){
?>
	<img src="imagens/<?=$imagem?>">
<?php
	}
?>

Inserir uma imagem totalmente alem de ser trabalhoso, é totalmente MUITO mal otimizado.

Valeu!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...