Ir para conteúdo

POWERED BY:

Arquivado

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

Jayr Alencar Jhs

Upload de arquivos (Como salvar nome da imagem no banco de dados)

Recommended Posts

Olá pessoal, estou usando um plugin para upload multiplo de imagens e gostaria de saber como fazer para salvar os nomes das imagens no banco de dados, em que parte do código eu devo colocar a sql e como. E também tenho que referenciar o album da foto, então tenho que pegar com GET o id do album

O código é este:

<?php

if (!isset($_FILES['images'])){
	$result=array("status"=>0, "message"=>"Nenhum arquivo");	
	echo json_encode($result);
	die();
}
$numFiles = count($_FILES['images']['name']);
$errorFiles = array();
for ($i=0; $i < $numFiles; $i++) {
    $uploadFile = basename($_FILES['images']['name'][$i]);

    if (!preg_match("/(gif|jpg|jpeg|png)$/i", $_FILES['images']['name'][$i])) {		
		$errorFiles[] = $uploadFile;
	} else {
        if (is_uploaded_file($_FILES['images']['tmp_name'][$i])) {
			
			preg_match("/\.[a-z0-9]+$/i", $uploadFile, $match);
			$extension = $match[0];
			$newFileName = md5(rand()).$extension;
			
            if (move_uploaded_file($_FILES['images']['tmp_name'][$i], "upload/".$newFileName)) {
                /* Great success... */
	
		if($cadastra == '1'){
			
		}else{
			
			}
            } else {
				 $errorFiles[] = $uploadFile;
            }
        } else {
            $errorFiles[] = $uploadFile;
        }    
    }
}

if (count($errorFiles)>0){
	$msg = "Erro no(s) arquivo(s): ".join(", ", $errorFiles);
	$result=array("status"=>0, "message"=>$msg);	
} else {	
	$result=array("status"=>1, "message"=>"Upload realizado");	
}
echo json_encode($result);

?>

 

Alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando se faz upload de um arquivo, este arquivo possui 5 características básicas:

 

  • name = Nome original do arquivo
  • type = tipo de arquivo, podendo ser image/jpg, image/gif e etc.
  • tmp_name = local e nome temporário (para onde o arquivo vai antes de fazer a mudança dele) do arquivo
  • error = caso haja erro no upload
  • size = arquivo medido em bytes.

Você deseja salvar o nome do arquivo, certo? Então basta "pegar" o nome dele e usar a query mysql. Exemplo:

/* Repare que no seu script você já criou uma strig que contém o nome do arquivo que será salvo, a string $newFileName. Basta utilizá-la no query: */

include "config.php"; /* inclua o arquivo de configurações com as variáveis que contém a senha do seu DB, o usuário e o host e coloque abaixo: */
$db = mysql_connect ('$host_db', '$user_db', '$senha_db'); //conectamos ao mysql
$basedados = mysql_select_db($database);

$cadastrar = mysql_query("INSERT INTO `$tabela` (o_nome_da_imagem) VALUES ('$newFileName')", $db);

 

Caso você usasse o nome original do arquivo, seria só pegar o nome usando um dos atributos do arquivo enviado:

$_FILES['images']['name'][$i]

 

Esse mesmo que você já utilizou logo no início do seu script, antes de modificar o nome final.



Ah, esqueci de dizer... coloque esse código logo abaixo de

if (move_uploaded_file($_FILES['images']['tmp_name'][$i], "upload/".$newFileName)) {
                /* Great success... */

 

E antes de:


if($cadastra == '1'){

}else{

}

 

Assim ele só vai registrar no banco de dados caso o upload ocorra com sucesso

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.