Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Dexter Morgan

upload de foto com cadastro no banco

Recommended Posts

boa tarde, seguinte tenho um script de cadstro com foto, onde salvo apenas o nome do arquivo no banco, só que quando nao envio nada está gerando um MD5, mas quando nao ter foto quero que o campo fica vazio

$foto = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;
preg_match("/\.(jpg|jpeg){1}$/i", $foto["name"], $ext);
ini_set("post_max_size", "3M");
ini_set("upload_max_filesize", "3M");
$nome_foto = md5(uniqid(time())) . "." . $ext[1];
$caminho_foto = "administracao/work/" . $nome_foto;
move_uploaded_file($foto["tmp_name"], $caminho_foto);

agora quando nao envio foto salva assim : a6219aa87db84f4c616cb0b20ac4c2fa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu retirei os outros campos deixei só o foto para você ver:

$foto = $_FILES["foto"];
$foto = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;
preg_match("/\.(jpg|jpeg){1}$/i", $foto["name"], $ext);
ini_set("post_max_size", "3M");
ini_set("upload_max_filesize", "3M");
$nome_foto = md5(uniqid(time())) . "." . $ext[1];
$caminho_foto = "administracao/work/" . $nome_foto;
move_uploaded_file($foto["tmp_name"], $caminho_foto);
$sql = "INSERT INTO curriculos (foto) VALUES ('$nome_foto')";

Compartilhar este post


Link para o post
Compartilhar em outros sites
if(isset($_FILES['foto']) and strlen($_FILES['foto']['name'])>0){

$foto = $_FILES["foto"];

preg_match("/\.(jpg|jpeg){1}$/i", $foto["name"], $ext);
ini_set("post_max_size", "3M");
ini_set("upload_max_filesize", "3M");
$nome_foto = md5(uniqid(time())) . "." . $ext[1];
$caminho_foto = "administracao/work/" . $nome_foto;
move_uploaded_file($foto["tmp_name"], $caminho_foto);
$sql = "INSERT INTO curriculos (foto) VALUES ('$nome_foto')";
}
else{
$sql = "INSERT INTO curriculos (foto) VALUES ('NULL')";
}

 

Caso seja enviada alguma foto ele faz upload e grava o nome no BD, caso não seja ele grava um valor NULL, mas pode ser outro qualquer que você queira, tipo perfil_sem_foto.jpg...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Osmar já respondeu....mas um if resolve seu problema!!

 

if(isset($_FILES['foto']){

$foto = $_FILES["foto"];

preg_match("/\.(jpg|jpeg){1}$/i", $foto["name"], $ext);
ini_set("post_max_size", "3M");
ini_set("upload_max_filesize", "3M");
$nome_foto = md5(uniqid(time())) . "." . $ext[1];
$caminho_foto = "administracao/work/" . $nome_foto;
move_uploaded_file($foto["tmp_name"], $caminho_foto);
$sql = "INSERT INTO curriculos (foto) VALUES ('$nome_foto')";
}
else{
$sql = "INSERT INTO curriculos (foto) VALUES ('NULL')";
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

desse jeito da certo pessoal, só que tem um problema, tem outro formulario em que envio dois arquivos uma foto e um doc como ficaria esse IF com 2 condições ?

if(isset($_FILES["anexo"]) and strlen($_FILES["anexo"]["name"]) > 0){
$anexo = $_FILES["anexo"];
preg_match("/\.(pdf|doc|docx){1}$/i", $anexo["name"], $ext);
ini_set("post_max_size", "3M");
ini_set("upload_max_filesize", "3M");
$nome_file = md5(uniqid(time())) . "." . $ext[1];
$caminho_file = "administracao/work/" . $nome_file;
move_uploaded_file($anexo["tmp_name"], $caminho_file);



if(isset($_FILES["foto"]) and strlen($_FILES["foto"]["name"]) > 0){
$foto = $_FILES["foto"];
preg_match("/\.(jpg|jpeg){1}$/i", $foto["name"], $ext);
ini_set("post_max_size", "3M");
ini_set("upload_max_filesize", "3M");
$nome_foto = md5(uniqid(time())) . "." . $ext[1];
$caminho_foto = "administracao/work/" . $nome_foto;
move_uploaded_file($foto["tmp_name"], $caminho_foto);

Compartilhar este post


Link para o post
Compartilhar em outros sites


if( move_uploaded_file($foto["tmp_name"], $caminho_foto) ){

$sql = "INSERT INTO curriculos (foto) VALUES ('$nome_foto')";

}


O correto é um if no move_uploaded_file, para se a imagem foi enviada para o servidor, posteriormente cadastrar o path no banco

Compartilhar este post


Link para o post
Compartilhar em outros sites


if( move_uploaded_file($foto["tmp_name"], $caminho_foto) ){

$sql = "INSERT INTO curriculos (foto) VALUES ('$nome_foto')";

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso é básico cara, vc ta passando o md5, tem que anular o registro, senão ele passa md5 no seu time() ...

$foto = (isset($_FILES["foto"])) ? $_FILES["foto"] : '';

if($foto!=''){
   preg_match("/\.(jpg|jpeg){1}$/i", $foto["name"], $ext);
   ini_set("post_max_size", "3M");
   ini_set("upload_max_filesize", "3M");
   $nome_foto = md5(uniqid(time())) . "." . $ext[1];
   $caminho_foto = "administracao/work/" . $nome_foto;
   move_uploaded_file($foto["tmp_name"], $caminho_foto);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

<?php 
    function Upload ($anexo, $image = false) {
        $allow = ($type == false ? array('pdf', 'doc', 'docx') : array('jpg', 'jpeg'));
        $type  = explode('.', $anexo['name']);
        $type  = end($type);
        $type  = strtolower($type);
 
        if (!in_array($type, $allow)) {die('Envie um arquivo válido...');}
 
        $finalName = md5(uniqid(time())).'.'.$type;
        $upload    = 'administracao/work/'.$finalName;
        move_uploaded_file($anexo['tmp_name'], $upload);
 
        return $finalName;
    }
 
    if (isset($_FILES['anexo']) && !empty($_FILES['anexo']['name'])) {
        $anexo = $_FILES['anexo'];
        $name  = Upload($anexo);  
        // Upload do anexo
        // Se você precisar recuperar o nome final do anexo, basta chamar $name
    }
 
    if (isset($_FILES['foto']) && !empty($_FILES['foto']['name'])) {
        $foto = $_FILES['foto'];
        $fotoNome  = Upload($foto);
        // Upload da imagem
        // Se você precisar recuperar o nome final da imagem, basta chamar a $fotoName
    }
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.