• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

renato6

PHP/MYSQL - Upload de Imagem

11 mensagens neste tópico

boas pessoal, sou novo aqui e espero estar a colocar este topico no sitio certo.

o meu problema e o seguinte. eu estou a desenvlover um projecto e tenho uma parte em que adiciono produtos a loja/site para depois aparecerm nos pordutos para depois poderem ser adicionados ao carrinho de compras (que ainda nao fiz). o que eu pretendia era ao adicionar um novo produto fazer um upload de uma imagem para esse produto e guardar no mysql para depois ao listar os produtos no site a imagem aparecer no respectivo produto. eu tenho alguns conheciemntos de php mas nao consigo fazer isto. como ja vi aqui varios tuturiais para algumas coisas espero que me possam ajudar a fazer isto.

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas, andei a procura e consegui arranjar um  codigo que faz o upload da imagem pa base de dados mas dam sempre erro de k a imagem e muito grande e eu tou a tentar fazer upload de uma imagem de 80*80. nao estou a ver qual e o problema espero k me possam ajudar

o código e este:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
    <head><title>File Upload To Database</title></head>
    <body>
        <h3>Please Choose a File and click Submit</h3>

        <form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
            <input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
            <input name="userfile[]" type="file" />
            <input type="submit" value="Submit" />
        </form>
    </body>
</html>

<?php
    // check if a file was submitted
    if(!isset($_FILES['userfile'])) {
        echo '<p>Please select a file</p>';
    }
    else
        {
        try {
            upload();
            // give praise and thanks to the php gods
            echo '<p>Thank you for submitting</p>';
        }
        catch(Exception $e) {
            echo $e->getMessage();
            echo 'Sorry, could not upload file';
        }
    }

    // the upload function
    function upload(){

    if(is_uploaded_file($_FILES['userfile']['tmp_name'])) {

        // check the file is less than the maximum file size
        if($_FILES['userfile']['size'] < $maxsize)
            {
        // prepare the image for insertion
        $imgData =addslashes (file_get_contents($_FILES['userfile']['tmp_name']));
        // $imgData = addslashes($_FILES['userfile']);

        // get the image info..
          $size = getimagesize($_FILES['userfile']['tmp_name']);

        // put the image in the db...
          // database connection
          mysqli_connect('localhost','root');


          // select the db
          mysqli_select_db($ligax,diagonalley);

        // our sql query
        $sql = "INSERT INTO testblob
                (image_id,image_type,image,image_size,image_name)
                VALUES
                ('','{$size['mime']}','{$imgData}','{$size[3]}','{$_FILES['userfile']['name']}')";

        // insert the image
        if(!mysql_query($sql)) {
            echo 'Unable to upload file';
            }
        }
    }
    else {
         // if the file is not less than the maximum allowed, print an error
         echo
          '<div>File exceeds the Maximum File limit</div>
          <div>Maximum File limit is '.$maxsize.'</div>
          <div>File '.$_FILES['userfile']['name'].' is '.$_FILES['userfile']['size'].' bytes</div>
          <hr />';
         }
    }
// echo $sql;
?>

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

este código funciona na perfeição, só precisas adicionar as verificações que te forem necessárias, por exemplo verificar o tipo de ficheiro, o tamanho, etc etc etc experimenta:

<?php

if ($_SERVER['REQUEST_METHOD'] == "POST") {
//$image = $_FILES['userfile']['name'];
$file_name = $_FILES['fixeiro']['name'];
$file = $_FILES['fixeiro']['tmp_name'];
$destino = "../imagens"; //Pasta onde serão armazenados os uploads

$mandar = $destino."/".$file_name;
if(!move_uploaded_file($file, $mandar)) {
   echo "O arquivo não pode ser enviado!";
}
else {
   echo "O arquivo foi enviado!";
}


}
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<html>
<body>
<form action="upload.php" method="POST" enctype="multipart/form-data">
Arquivo: <input type="file" id="fixeiro" name="fixeiro"><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>


</body>
</html>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ola meu caro amigo

veja esse é um script para upload de imagens com banco de dado

Arquivo class.uploadjpg.php
<?php
//classe para upload de imagem

class Uploadjpg{
var $erro;
var $imgy;
var $tamanho;
var $nometmp;
var $nome;
var $tipo;
var $quali;
var $novonome;
var $diretorio;

function Uploadjpg(){
    }
//recebe
function Recebe($imagem){	
	$this->tamanho = $imagem['size'];
	$this->nometmp = $imagem['tmp_name'];
	$this->tipo = $imagem['type'];
	$this->nome = $imagem['name'];
}
//gera imagem
function Gera($imgy,$quali,$diretorio){
	$this->imgy = $imgy;
	$this->quali = $quali;
	$this->diretorio = $diretorio;

	if (($this->tipo != 'image/jpeg') && ($this->tipo != 'image/pjpeg')){
		$this->erro =  'Tipo de arquivo invlido, somente JPG.';
		return false;	
	}elseif($this->tamanho == 0){
		$this->erro =  'Selecione uma imagem.';
		return false;
	}elseif(!$imagem_orig = @imagecreatefromjpeg($this->nometmp)){
		$this->erro =  'Imagem JPG com formato incompativel.';
		return false;
	}elseif(!file_exists($this->diretorio)){
		$this->erro =  'O diretorio '.$this->diretorio.' nao existe.';
		return false;
	}else{
		//gera a imagem
		$imagem = $this->diretorio.$this->novonome; 
		$tamanhoX = @imagesx($imagem_orig);
		$tamanhoY = @imagesy($imagem_orig); 
		$altura = $this->imgy; 
		//A linha abaixo é para largura proporcional da altura
		//$largura = $tamanhoX * $altura / $tamanhoY; 
		$largura = 194; 
		$imagem_fin = imagecreatetruecolor($largura, $altura); 
		imagecopyresampled($imagem_fin,$imagem_orig, 0, 0, 0, 0, $largura + 1, $altura + 1, $tamanhoX, $tamanhoY); 
		imageJPEG($imagem_fin,$imagem,$this->quali);
		@imagedestroy($imagem_orig);
		@imagedestroy($imagem_fin);
		//se deu certo retorna o nome da imagem
		return $this->novonome;
	}
}

//retorna erro
function Erro(){
	return $this->erro;
}
//seta nome
function Setanome($nome){
	$this->novonome = $nome;
}
//cria diretorio
function Criadir($novodir,$chmod){
	if(file_exists($novodir)){
		return false;
	}elseif(!@mkdir($novodir,$chmod)){
		return false;
	}else{
		return true;
	}
}
}
?>


FAZ O UPLOAD

<?php
// Upload
require_once "class.uploadjpg.php";

//faz o upload da foto
$diretorio = 'imagens/fotos/';
$envia = new Uploadjpg;
$envia->Recebe($_FILES['foto']);
$envia->Setanome(date('dmYhis').'.jpg');
$foto = $envia->Gera(182,100,$diretorio);

if(!$foto){
	$erro = $envia->Erro();
}else{
SQL
}
?>

Espero ter ajudado

Grande abraço!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora