Sistema de upload para banco de dados PHP+MySQL [RESOLVIDO]

1. Sistema de upload para banco de dados PHP+MySQL [RESOLVIDO]

Helio
helioh3

(usa Debian)

Enviado em 11/09/2013 - 16:44h

Olá pessoal,
poderiam me ajudar a fazer um sisteminha (PHP+MySQL) para fazer upload de arquivos de qualquer formato para um banco de dados MySQL e como fazer para mostrar ou baixar o arquivo?
Obrigado que puderem ajudar!


  


2. MELHOR RESPOSTA

CASSIO FERRAZ
cassio88

(usa Ubuntu)

Enviado em 11/09/2013 - 18:00h

Helio,
a proposito, dá uma olhada neste script, não testei mas parece que pode te interessar
http://www.devmedia.com.br/listando-arquivos-de-pastas-com-php/17716

3. Re: Sistema de upload para banco de dados PHP+MySQL [RESOLVIDO]

CASSIO FERRAZ
cassio88

(usa Ubuntu)

Enviado em 11/09/2013 - 17:02h

a página mãe do php tem 5 itens, espero que com as 5 você resolva seu problema
http://php.net/manual/pt_BR/features.file-upload.post-method.php

Além delas, tem também
http://www.w3schools.com/php/php_file_upload.asp

espero ter ajudado



4. Re: Sistema de upload para banco de dados PHP+MySQL [RESOLVIDO]

Helio
helioh3

(usa Debian)

Enviado em 11/09/2013 - 17:22h

cassio88, Obrigado por responder,

Detalhes: Eu tenho um painel administrativo, onde criei um formulário para para envio de arquivos selecionando a categoria enviado ao banco de dados e depois listar eles lá.

Resumindo é um sitema onde quero ter categorias e listar os arquivos em suas categorias, tendo assim opções para baixar ou visualizar.


Pra entender melhor, por favor visite este link: http://www.camara.ms.gov.br/?secao=transparencia


<form name="formulario" action="" method="post" enctype="multipart/form-data">
<label class="line">
<span class="data">Nome:</span>
<input type="text" name="nome" value="<?php if($f['nome']) echo $f['nome']; ?>" />
</label>
<label class="line">
<span class="data">Selecione arquivo para envio:</span>
<input type="file" class="fileinput" name="arq" size="60" style="cursor:pointer; background:#FFF;" />
</label>
<label class="line">
<span class="data">Data:</span>
<input type="text" name="data" class="formDate" value="<?php if($f['date']) echo $f['date']; else echo date('d/m/Y H:i:s'); ?>" />
</label>
<label class="line">
<select name="categoria">
<option value="">Selecionar categoria   </option>
<?php
$readCatPai = read('camara_trans_cat', "WHERE id_pai IS NULL");
if(!$readCatPai){
echo'<option value="">Não foram encontradas categorias.   </option>';
}else{
foreach($readCatPai as $readcat):
echo'<option value="" disabled="disabled">'.$readcat['nome'].'</option>';
$readCategoria = read('camara_trans_cat', "WHERE id_pai='$readcat[id]'");
if(!$readCategoria){
echo'<option value="" disabled="disabled">»$raquo; Cadastre uma nova subcategoria</option>';
}else{
foreach($readCategoria as $categoria):
echo'<option value="'.$categoria['id'].'" ';
if($categoria['id'] == $f['categoria']){
echo'selected="selected"';
}
echo' >»»'.$categoria['nome'].'</option>';
endforeach;
}
endforeach;
}
?>
</select>
</label>
<!--<input type="reset" value="clear" class="btnalt" />-->
<input type="submit" value="Enviar Arquivo" name="sendFile" class="btn" />
</form>
</div><!-- /bloco form -->


Seguinte, eu tenho este código, que estou fazendo até ai consigo até enviar o arquivo para minhas pasta UPLOADS/ARQUIVOS e criar o dir do ano e mês. O que na verdade não estou conseguindo é exibir este arquivo no layout... quero listar os arquivos que tem dentro de cada categoria.

<?php
if(isset($_POST['sendFile'])){
$f['nome'] = htmlspecialchars(mysql_escape_string($_POST['nome']));
$f['date'] = htmlspecialchars(mysql_escape_string($_POST['data']));
$f['categoria'] = htmlspecialchars(mysql_escape_string($_POST['categoria']));

if(in_array('',$f)){
echo'<span class="ms in">Você deve preencher todos campos</span>';
}else{
$f['data'] = formDate($f['date']); unset($f['date']);

$pasta = '../uploads/arquivos/';
$ano = date('Y');
$mes = date('m');
//criando pasta ano e pasta mês
if(!file_exists($pasta.$ano)){
mkdir($pasta.$ano, 755);
}
if(!file_exists($pasta.$ano.'/'.$mes)){
mkdir($pasta.$ano.'/'.$mes);
}
$arq = $_FILES['arq'];
$ext = $arq['name'];
$f['arq'] = $ano.'/'.$mes.'/'.$f['url'].'.'.$ext;

if(move_uploaded_file($arq['tmp_name'], $pasta.$ano.'/'.$mes.'/'.$ext)){
create('camara_trans_arq',$f);
echo'<span class="ms ok">Arquivo enviado com sucesso!</span>';

}else{
echo'<span class="ms al">Erro ao enviar arquivo</span>';
}

}

echo'<pre class="debug">';
print_r($f);
echo'</pre>';

}
?>

Desde já cara, obrigado por responder.

Abraço


Hélio


5. Sistema de upload para banco de dados PHP+MySQL

CASSIO FERRAZ
cassio88

(usa Ubuntu)

Enviado em 11/09/2013 - 17:57h

Helio,
Aqui na empresa onde trabalho, eu fiz há alguns anos um sisteminha assim: o cara (digamos, o funcionário 7.345) mandava um arquivo (foto.jpg, por exemplo), eu o renomeava (digamos, 7345.jpg), assim na outra página, para disponibilizar o arquivo para o cara baixar, era só montar algo assim:
<a href="7345.jpg">ver documento</a>

o programa é cheio de ifs, por isso anexá-lo mais atrapalha do que ajuda, por isso mandei o link do php.

pelo que entendi, você precisa trabalhar com vários diretórios, então não daria para montar uma tabelinha que fizesse o meio de campo (2 campos: funcionario - caminho; exemplo: 7345 => 2013/09)?

peço desculpas por não ter destrinchado seu código, mas estou meio sem tempo

um abraço


6. Re: Sistema de upload para banco de dados PHP+MySQL [RESOLVIDO]

Helio
helioh3

(usa Debian)

Enviado em 11/09/2013 - 18:49h

Cassio, Desde já cara, obrigado por responder.

O link que mandou é útil pra listar aquivos do diretorio, mas no meu caso preciso cadastrar no banco;
criar um formulario: nome, data e arquivo. no meu PAINEL, depois pegar esse dados, enviar para uma tabela no banco de dados, listar no PAINEL e depois mostrar no layout do site para visualização ou download. Como fez o autor desde site: http://www.camara.ms.gov.br/?secao=transparencia que te mostrei...

Vlw peça força

Um abraço.

Hélio


7. Sistema de upload para banco de dados PHP+MySQL

CASSIO FERRAZ
cassio88

(usa Ubuntu)

Enviado em 11/09/2013 - 19:06h

Boa noite Helio,

amanhã estarei fora, então vou tentar te ajudar na medida do possivel:
1) parece que seu form está OK
2) o pulo do gato é, quando você manda o arquivo para o diretório, neste momento você precisa gravar no banco as informações necessárias
3) na http://www.camara.ms.gov.br/?secao=transparencia&id=8&categoria=25, você trabalha com uma SELECT DISTINCT ANO ORDER BY ... assim retorna 2011, 2012, 2013

4) clicando por exemplo em 2012, você SELECT where ano = 2012 (usa get = ano)
deu para reparar que em vez de ano = 2012, o programador usou categoria=75, mas o fim é o mesmo

5) aí, é só listar os arquivos, ou seja, SELECT ... WHERE ano = 2012 ORDER BY ... e ao percorrer a matriz de resultado, por nos a href algo que a pessoa entenda

bom, espero ter ajudado

um abraço



8. Re: Sistema de upload para banco de dados PHP+MySQL [RESOLVIDO]

Helio
helioh3

(usa Debian)

Enviado em 11/09/2013 - 19:19h

Cassio,

Vou tentar aqui e respondo depois com o resultado...

vlw por ajudar

Grande abraço

Hélio


9. Re: Sistema de upload para banco de dados PHP+MySQL [RESOLVIDO]

Helio
helioh3

(usa Debian)

Enviado em 23/09/2013 - 04:33h

Cassio, consegui fazendo de outra forma, lendo os diretórios. Vou postar um script com a solução. Vou tentar postar um artigo, dai aprendo junto com a galera.

Vlw






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts