Ir para conteúdo
Marcio_123

galeria de fotos com dropzone e banco de dados

Recommended Posts

ola pessoal blzz

 

to fazendo esse script dropzone para enviar varias fotos ao mesmo tempo pro servidor, so não conseguir gravar no DB. ele envia para pasta mas não grava no banco.

 

segue codigo funcionando 100% se alguem puder ajudar gravar no banco agradeço.

 

index.php

<!DOCTYPE html>
<html>
<head>
	<title>PHP - Multiple Image upload using dropzone.js</title>
	<script src="http://demo.itsolutionstuff.com/plugin/jquery.js"></script>
	<link rel="stylesheet" href="http://demo.itsolutionstuff.com/plugin/bootstrap-3.min.css">
	<link href="https://cdnjs.cloudflare.com/ajax/libs/dropzone/4.0.1/min/dropzone.min.css" rel="stylesheet">
	<script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/4.2.0/min/dropzone.min.js"></script>
</head>
<body>


<div class="container">
	<div class="row">
		<div class="col-md-12">
			<h2>PHP - Multiple Image upload using dropzone.js</h2>
			<form action="upload.php" enctype="multipart/form-data" class="dropzone" id="image-upload">
				<div>
					<h3>Clique Aqui</h3>
				</div>
			</form>
		</div>
	</div>
</div>


<script type="text/javascript">
	Dropzone.options.imageUpload = {
        maxFilesize:3,
        acceptedFiles: ".jpeg,.jpg,.png,.gif"
    };
</script>


</body>
</html>

 

upload.php

<? include "../config.php"; ?>
<?

$id_noticia = "1";
$uploadDir = 'uploads'; // nome da pasta onde os arquivos fica

 $tmpFile = $_FILES['file']['tmp_name'];
 $filename = $uploadDir.'/'.time().'-'. $_FILES['file']['name'];
 if(move_uploaded_file($tmpFile, $filename)) {
 	// aqui faça a gravaçao no banco
	$sql = "INSERT INTO tb_imagens_noticias VALUES ('$id_noticia','$filename')";
	$qr = mysql_query($sql);
}
?>

 

nao esqueçam de criar a pasta uploads

 

gente so falta gravar no banco, helllp

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na linha onde o sr. executa a query, acrescente:
$qr = mysql_query($sql) or die(mysql_error());

e nos mostre qual o erro que aparece.

 

 

P.S.

image.png.5cea9440e6414085e1d3b89a3ae82cfb.png

Há pelo menos 5 anos que o php recomenda fortemente que não se use mais as extensões mysql_*
use mysqli

Compartilhar este post


Link para o post
Compartilhar em outros sites
15 horas atrás, Marcio_123 disse:

$sql = "INSERT INTO tb_imagens_noticias VALUES ('$id_noticia','$filename')";

 

Você não está passando os campos onde será inserido os valores.

INSERT INTO tb_imagens_noticias (campo1, campo2) VALUES ('$id_noticia','$filename')

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

nossa nunca mais vou esquecer isso :) SHOWWW

 

agora so teve um problema dentro do diretorio o nome ta ficando Ex: 1558021852-WIN_20170719_185057.JPG

 

e no banco de dados o nome do arquivo ta ficando  uploads/1558021852-WIN_20170719_185057.JPG

 

ele ta pegando o nome da pasta e gravando no banco. 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 16/05/2019 at 13:00, Marcio_123 disse:

nossa nunca mais vou esquecer isso :) SHOWWW

 

agora so teve um problema dentro do diretorio o nome ta ficando Ex: 1558021852-WIN_20170719_185057.JPG

 

e no banco de dados o nome do arquivo ta ficando  uploads/1558021852-WIN_20170719_185057.JPG

 

ele ta pegando o nome da pasta e gravando no banco. 

Por que você esta botando o diretorio direto na variavel $filename.

Em 15/05/2019 at 19:39, Marcio_123 disse:

$filename = $uploadDir.'/'.time().'-'. $_FILES['file']['name'];

Altere para

$filename = time().'-'. $_FILES['file']['name'];

E aqui

Em 15/05/2019 at 19:39, Marcio_123 disse:

if(move_uploaded_file($tmpFile, $filename)) {

para

if(move_uploaded_file($tmpFile, $uploadDir.'/'.$filename)) {

Deve resolver o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcio_123 :
 

Como no upload.php pode pegar id ?

 

Todas as minha edições estão dentro blog.php

 

<? include "../config.php"; ?>
<?

$id_noticia = "1";//<--------meu id que está na página
$uploadDir = 'uploads'; // nome da pasta onde os arquivos fica

 $tmpFile = $_FILES['file']['tmp_name'];
 $filename = $uploadDir.'/'.time().'-'. $_FILES['file']['name'];
 if(move_uploaded_file($tmpFile, $filename)) {
 	// aqui faça a gravaçao no banco
	$sql = "INSERT INTO tb_imagens_noticias VALUES ('$id_noticia','$filename')";
	$qr = mysql_query($sql);
}
?>

 

Editado por Idiframk Silva
script duplicado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Sapinn
      Salva galera. Estou tentando usar o dropzone.js em um projeto mas estou tendo grandes dificuldades. Ele funciona aparentemente bem, mas não estou conseguindo enviar os arquivos para a pasta. Eu queria colocar mais de um dropzone na mesma pagina para arquivos diferentes como posso fazer isso? Outra coisa eu queria colocar todas as url de varios arquivos na mesma coluna em um formato json, isso possivel? Se sim como eu faria para chamar esses arquivos de volta e mostrar para o usuario??
    • Por Victor Penna
      Bom dia pessoal, estou precisando de uma força de vocês quanto ao recurso dropzone, o que ainda estou aprendendo a trabalhar com ele. 
      A principio, estou precisando configura-lo no projeto da empresa, porém não estou conseguindo fazer corretamente uma zona especifica de upload na pagina do projeto. Usamos o framework Phlacon e estamos atualizando os recursos do projeto.  Ja li a documentação do projeto e pesquisei no wiki do projeto(gitlab), mas até o momento ainda não entendi muita da configuração, espero que possam me ajudar a alcançar o meu objetivo. 
       
      Preciso criar uma div, que seja a dropzone e nela consiga gerar um arrays dos caminhos já inseridos pelo input, para assim tratar no controller e salva-los no banco de dados.
      Atualmente o meu código está assim:
       
      phtml:
      <div class="row"> <div class="col-sm-12"> <div class="dropzone" id="dropEmp" > <?= $form->render("dsPath") ?> </div> </div> </div>  
      Javascript:
      Dropzone.options.dropEmp = { // Prevents Dropzone from uploading dropped files immediately autoProcessQueue: false, uploadMultiple: true, parallelUploads: 100, maxFiles: 100, // Dropzone settings init: function() { var dropEmp = this; this.element.querySelector("button[type=button]").addEventListener("click", function(e) { e.preventDefault(); e.stopPropagation(); dropEmp.processQueue(); }); this.on("sendingmultiple", function() { }); this.on("successmultiple", function(files, response) { }); this.on("errormultiple", function(files, response) { }); } };  
      Fico no aguardo da colaboração de vocês.
      Grande abraço pessoal!
       
    • Por AnthraxisBR
      Boa tarde,
       
      Bom estou utilizando o plugin dropzone.js pra fazer o upload de uma imagem do painel de controle:

      Bom o tramite é o seguinte:
       
      1 - > Escolhe a pagina
      O código carregado ao escolher a página:
      $(document).on('change', '.select-page-header-banner', function () { var $this = $(this); var value = $this.val(); $('.place-to-fill-header-banner-content').empty().html('' + '<section>' + '<div class="container section">' + '<div class="thumbnail-mod-1">' + '<img src="img/box.gif"/>' + '<p class="h5 fw-l inline-block">Carregando</p>' + '</div>' + '</div>' + '</section>' + ''); $.ajax({ type: "POST", url: "callers.php", data: {function: 'load_header_banner_content', page: value}, dataType: 'html', success: function (data) { $('.place-to-fill-header-banner-content').empty().html(data); } }); }); 2 -> Escolher a opção 'Editar imagem'
      $(document).on('click', '.edit-image-header-banner', function () { $this = $(this); var page = $this.data('page'); $this.closest('.section-header-banner-image').closest('div').addClass('dropzone dropzone-file-area').prop('id', 'my-dropzone'); $this.closest('.text-header-banner-container').find('.text-header-banner').hide(); $this.closest('.section-header-banner-image').find('.edit-text-header-banner').hide(); $this.closest('.section-header-banner-image').find('.save-text-header-banner').hide(); $('.dz-default').show(); $('.dz-preview').css('dispĺay', 'block'); var element = $('#my-dropzone'); var dropzone = new Dropzone("#my-dropzone", { dictDefaultMessage: 'Solte as imagens aqui, formato recomendado 1800x400px, ou mantenha a proporção 18x4.', url: 'callers.php?function=upload_banner_image&page=' + page, success: function (file, response) { $('.bg-about-' + page).removeClass('bg-about' + page).addClass('bg-about-preview-' + page); $this.text('Confirmar imagem'); $this.closest('.section-header-banner-image').closest('div').removeClass('dropzone dropzone-file-area').removeAttr('id', 'my-dropzone'); $.ajax({ type: "POST", url: "callers.php", data: {function: 'load_header_banner_content', page: page,temp:true}, dataType: 'html', success: function (data) { $('.place-to-fill-header-banner-content').empty().html(data); } }); $('.dz-default').hide(); $('.dz-preview').hide(); } } ); });  
      O que muda é essa parte 2, nessa segunda parte, ao chamar a classe php que monta o campo jumbotron (bootstrap) com a imagem, ele muda a className '.bg-about-1' por '.bg-about-preview-1', indicando o carregamento da imagem temporária.
       
      Se clicar em confirmar, ele muda a imagem da pasta temporária para a pasta padrão e substitui a imagem anterior.
       
      Mas ao clicar em 'Outra imagem' é que está o problema, na primeira mudança, ele indica, muda a imagem do background e funciona como deveria, mas a partir da segunda mudança:
       
      O plugin carrega ok, a imagem é carregada para o servidor, o html que contem a imagem é recarregado, mas mesmo com a imagem substituída no destino, ela não atualiza mais.
       
      Acredito que seja algo relacionado ao cache, mas nem com as metatags funciona:
       
      <meta http-equiv="cache-control" content="no-store, no-cache, must-revalidate, Post-Check=0, Pre-Check=0"> <meta http-equiv="expires" content="0"> <meta http-equiv="pragma" content="no-cache"> Se não for o cache, qual poderia ser outro problema causando isso ?
       
      Esse é o retorno:
       

       
      Desde ja valeu :3
    • Por Anderson Camargo
      ola boa noite estou tentando criar um arquivo de upload de imagem, que cria uma nova pasta para as imagens ele recupera o id da galeria e envia deveria enviar as imagens para pasta o que não está ocorrendo.
       
      Detalhes a pasta está sendo criada, e a imagem está sendo enviada mas não está upando para pasta criada, vou utilizar dropzone.
       
      Segue arquivo para que possam dar uma olhada agradeço desda já a ajuda.
      <?php $id = $_REQUEST['id']; $ds = DIRECTORY_SEPARATOR; //1 $storeFolder = '../ex5/galeria/'.$id.'/'; //2 if(!file_exists($storeFolder)) { mkdir('../ex5/galeria/'.$id.'/', 0777, true); } if (!empty($_FILES)) { $tempFile = $_FILES['file']['tmp_name']; //3 $targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds; //4 $targetFile = $targetPath. $_FILES['file']['name']; //5 move_uploaded_file($tempFile,$targetFile); //6 } ?>
×

Informação importante

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