Ir para conteúdo

POWERED BY:

Arquivado

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

lucas_imasters

[Resolvido] Criação de Pastas no servidor com Banco de Dados

Recommended Posts

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Agradeço ajuda, mais cara o que eu quero saber é como fazer upload de acordo com o diretorio com nome de um cliente. Ex: o nome do cliente ta na variavel

 

<?php

$cliente_upload = $_POST["selecao_cliente"]

>

 

Ai eu quero que ele faça upload para esse diretorio:

 

C:\Arquivos de programas\wamp\www\LDS Oliverira - Contabilidade\Site LDS Oliverira - Contabilidade - Rev7- 10-04-11\Area_Cliente\Documentos\$cliente_upload

 

Ou seja la em Documentos tem as pastas de acordo com o nome do cliente ai ele tem que enviar de acordo com o cliente que eu selecionei em $cliente_upload, mais ele nao esta fazendo isso.

 

Veja como esta o meu codigo de upload:

 

<?php
$cliente_upload = $_POST["selecao_cliente"]; //Pega o cliente escolhido para fazer a alteração
//$pasta_cliente  = "C:/Arquivos de programas/wamp/www/LDS Oliverira - Contabilidade/Site LDS Oliverira - Contabilidade - Rev7- 10-04-11/Area_Cliente/Documentos/$nome_cli=$cliente_upload";
$nome_cli       = $_POST["opcao"];

if(isset($_POST['acao']) && $_POST['acao'] == 'cadastrar')
{
	$img = $_FILES['img'];
	$pasta  = "C:/Arquivos de programas/wamp/www/LDS Oliverira - Contabilidade/Site LDS Oliverira - Contabilidade - Rev7- 10-04-11/Area_Cliente/Documentos/$nome_cli";
	$contar = count($img['name']);
	$ok = 0;
	$erro = 0;
	for($i = 0; $i < $contar; $i++)
	{
		$nome = $img['name'][$i];
		$tmp  = $img['tmp_name'][$i];
		if(!empty($nome))
		{
			if(move_uploaded_file($tmp, $pasta.$nome))
		   {
			  $ok++; 
			}
			else
			{
				$erro++;
			}
		}
	}
}
?>

<form method="post" action="" enctype="multipart/form-data">
					<a href="#"  onclick="AddCampo('img-extra')">Add Campo</a>

					<label><span>Imagem</span></label><input type="file" name="img[]"  id="img"/>

					<div id="img-extra"></div>

					<input type="submit" class="btn" value="Enviar" />
					<input type="hidden" name="acao" value="cadastrar" />
				</form>

				<?php
					  if(isset($ok) && isset($erro)){

						 echo 'Arquivos enviados com sucesso :'.$ok;
						 echo '<br />';
						 echo 'Arquivos não enviados :'.$erro;
					  }

				   /*************************MOSTRAR AS IMAGENS***************************************/

				/*  //Aqui será a pasta onde estão as imagens
				   $pasta = '';

				//aqui recupera as imagens em coloca em um array
				   $arquivos = glob("$pasta{*.jpg,*.png,*.gif,*.bmp}", GLOB_BRACE);

				//aqui percorre o array para lista o nome das imagens
				   foreach($arquivos as $img){
				   //aqui mostra as imagens
					  echo '<img src="'.$img.'" alt=""/>';
				   }
				  */ 
				?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

troque

 

$pasta  = "C:/Arquivos de programas/wamp/www/LDS Oliverira - Contabilidade/Site LDS Oliverira - Contabilidade - Rev7- 10-04-11/Area_Cliente/Documentos/$nome_cli";

por:

$pasta  = "/LDS Oliverira - Contabilidade/Site LDS Oliverira - Contabilidade - Rev7- 10-04-11/Area_Cliente/Documentos/$nome_cli";

 

a pasta já existe ?

 

se não você vai precisar cria-la com um mkdir()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa quantidade de espaços é problemática. O ideal era que não houvessem espaços.

 

aparece algum erro ? qual ?

habilite as mensagens:http://forum.imasters.com.br/topic/375800-orientacoes-para-uma-boa-participacao/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa quantidade de espaços é problemática. O ideal era que não houvessem espaços.

 

aparece algum erro ? qual ?

habilite as mensagens:http://forum.imasters.com.br/topic/375800-orientacoes-para-uma-boa-participacao/

 

 

Ai é que está, não aparece erro, ele simplesmente ignora o nome da pasta como sendo variavel. Ele salva em Documentos, ele nao identifica a variavel como sendo o nome da pasta de acordo com o cliente que eu selecionei

 

Cara, me diz uma coisa quando eu vou inserir um valor na tabela cliente ela tem uma chave primaria chamada cli_id auto incremento e a tabela de arquivo tem a chave estrangeira. Como que eu faço para colocar o mesmo id da tabela cliente no chave estrangeira da tabela arquivo. Acho que isso pode ajudar meu problema porque ai eu crio uma variavel e salvo o nome do diretorio no banco de dados e quando for selecionar a pasta de upload seleciono esse nome do diretorio de acordo com id do cliente. Acho que assim da certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

debug:

 

echo $pasta; aparece oque ?

 

cara.. depende de que momento você está querendo gravar na segunda tabela o ID da primeira.

se for logo no INSERT, você pode usar um mysql_insert_id(), ver o ultimo inserido, e jogar na tua segunda tabela.

 

se não, nem é preciso tudo isso, e pega logo consultando da primeira mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

debug:

 

echo $pasta; aparece oque ?

 

cara.. depende de que momento você está querendo gravar na segunda tabela o ID da primeira.

se for logo no INSERT, você pode usar um mysql_insert_id(), ver o ultimo inserido, e jogar na tua segunda tabela.

 

se não, nem é preciso tudo isso, e pega logo consultando da primeira mesmo.

 

Cara falta pouco, muito pouco para eu fazer upload para a pasta desejada.

 

Eu ja consegui retornar o ultimo valor salvo ja e gravar na chave estrangeira no db.

 

Vou explicar tudo bem DETALHADO para você me ajudar melhor

 

Local onde estao as paginas do Administrador:

 

C:\Arquivos de programas\wamp\www\LDS Oliverira - Contabilidade\Site LDS Oliverira - Contabilidade - Rev7- 10-04-11\Area_Admin

 

Local para onde quero fazer upload de imagens

 

C:\Arquivos de programas\wamp\www\LDS Oliverira - Contabilidade\Site LDS Oliverira - Contabilidade - Rev7- 10-04-11\Area_Cliente\Documentos\*Aqui tem varias pastas que são criadas de acordo com o id e nome do usario

 

Codigo da formulario que seleciona o cliente

 


<table width='800px' height='50px' cellspacing='2' cellpadding='2' border='1' style='margin-top: 15px;' bgcolor='#3b4244'>
<tr bgcolor='#3b4244' style="color: white;">
<td>Upload</td>
<td>Id</td>
<td>Nome</td>
</tr>
<?php 		
$sql="SELECT cli_id, cli_nome FROM cliente order by cli_id";
$resultado = mysql_query($sql) or die ("Não foi possível realizar a consulta, verifique a conexão.  ". mysql_error());
while($registro= mysql_fetch_array($resultado))
{ ?>
<tr>
<td bgcolor='white'>

<form method="post" action="upload_arquivos.php" name="upload">
	<input type="Image" name="send" src="../Imagens/Botoes/upload.png" style="margin-left: 0px; margin-top: 0px;">	
	<div style="display:none;">
	        <select name="selecao_cliente">
		                <option><?php echo "$registro[cli_id]"; ?></option>
	        </select>
	</div>						
</form>
</td>
<td bgcolor='white' style="font-weight: bold;"><?php echo "$registro[cli_id]"; ?></td>
<td bgcolor='white'><?php echo "$registro[cli_nome]"; ?></td>
</tr>				
<?php
}
	mysql_free_result($resultado);

?>
</table>

 

 

 

 

Codigo da pagina que faz upload dos arquivos

 


$cliente_upload = $_POST["selecao_cliente"]; //Pega o cliente escolhido para fazer a alteração
$cliente_id = $_POST["selecao_id"]; //Pega o cliente escolhido para fazer a alteração
$sql= "SELECT * FROM arquivo_area WHERE cli_id='$cliente_upload'";	
$resultado = mysql_query($sql) or die ("Não foi possível realizar a consulta, verifique a conexão.  ". mysql_error());	
$registro= mysql_fetch_array($resultado);
$id_dir = $registro[cli_id];
$dir = $registro[diretorio_nome]; 

if(isset($_POST['acao']) && $_POST['acao'] == 'cadastrar')
{
	$img = $_FILES['img'];
	$contar = count($img['name']);
	$pasta  = $dir;
	$ok = 0;
	$erro = 0;
	//if($pasta==$dir){
		for($i = 0; $i < $contar; $i++)
		{
			$nome = $img['name'][$i];
			$tmp  = $img['tmp_name'][$i];
			if(!empty($nome))
			{
				if(move_uploaded_file($tmp, $pasta.$nome))
			   {
				  $ok++; 
				}
				else
				{
					$erro++;
				}
			}
		}
	//}	
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
 "http://www.w3.org/TR/html4/loose.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>

	<title>LDS Contabilidade</title>


	<script type="text/javascript">
	function AddCampo(id){
		el = document.getElementById(id);
		el.innerHTML += '<label><span>Imagem Extra</span></label><input type="file" name="img[]" /><br />';
	}


	</script>


</head>

<body onLoad="initTimer();">

	<!--Início do Conteúdo da Página-->
	<div id="conteudo">

		<!--Início do Menu Lateral Esquerdo da Página-->
		<div id="menuesquerdo">
			<div id="menu4">
                       <ul>
                            <!-- CSS Tabs -->
			<li><a id="current" href="admin.php?selecao=cadastros">Cadastros</a></li>
			<li><a href="admin.php?selecao=inserir">Inserir</a></li>
			<li><a href="admin.php?selecao=alterar">Alterar</a></li>
			<li><a href="admin.php?selecao=excluir">Excluir</a></li>
			<li><a href="admin.php?selecao=upload">Upload</a></li>
			<li><?php echo "$cliente_upload"; ?></li>
			<li><?php echo "$id_dir"; ?></li>
			<li><?php echo "$dir"; ?></li>
			<li><?php echo "A pasta é: ".$pasta; ?></li>
			<li><a href="logout_area_admin.php">Sair</a></li>
                       </ul>
	</div>
<!--Fim do Menu Lateral Esquerdo da Página-->

<!--Início do Conteúdo da Página-->
<div id="conteudo_direito" style="overflow: auto;">

<form method="post" action="" enctype="multipart/form-data">
	<a href="#"  onclick="AddCampo('img-extra')">Add Campo</a>

	<label><span>Imagem</span></label><input type="file" name="img[]"  id="img"/>

	<div id="img-extra"></div>

	<input type="submit" class="btn" value="Enviar" />
	<input type="hidden" name="acao" value="cadastrar" />
</form>

<?php
 if(isset($ok) && isset($erro)){

	echo 'Arquivos enviados com sucesso :'.$ok;
	echo '<br />';
	echo 'Arquivos não enviados :'.$erro;
	 }

 

Ele envia o arquivo só que para a a pasta do administrador e nao do cliente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei o erro mais não o entendo e nem sei como faze-lo da certo.

 

Esta nesta linha

if(isset($_POST['acao']) && $_POST['acao'] == 'cadastrar')
       {
               $img = $_FILES['img'];
               $contar = count($img['name']);
               $pasta  = $dir;


 

$dir = $registro[diretorio_nome]; //Ou seja Exatamente igual a isso---> $dir = ../Area_Cliente/Documentos/13 - Joao

 

Se eu colocar $pasta = $dir antes do if(issset.....) ele reconhece agora ali dentro ele nao reconhece a variavel dir como diretorio e deixa como se fosse vazio e coloca no diretorio aonde esta o arquivo.

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.