Estou desenvolvendo um sistema onde tem a parte de cadastros, possui campos para serem preenchidos e um input file multiple.
Preciso que essas informações inseridas sejam armazenadas no banco de dados e que faça um upload dos arquivos anexados para uma pasta especifica. E preciso depois fazer uma pagina onde visualiza essas informações e tenha a opção de fazer o download do arquivo.
A forma que eu fiz, se selecionar só um arquivo, ele funciona perfeitamente, porém se coloco acima de um arquivo, ele cadastra também porém cadastra o mesmo numero de vezes que tem de arquivo selecionado. Se selecionei 3 arquivos, vai cadastrar 3 vezes a mesma informação porém cada campo do arquivo com um arquivo diferente.
Lembrando que os nomes dos arquivos selecionados devem ficar todos no mesmo campo do banco de dados separados por vírgula.
Segue como eu fiz:
<input multiple="" name="anexos[]" type="file"/>
PHP
$img = $_FILES["anexos"]; $pasta = '../downloads/'; $contar = count(array_filter($img['name'])); $ok = 0; $erro = 0; for($i = 0; $i < $contar; $i++){ $anexosMultiplos = $img['name'][$i]; $tmp = $img['tmp_name'][$i]; if(!empty($anexosMultiplos)){ if(move_uploaded_file($tmp, $pasta.$anexosMultiplos)){ $sql = mysql_query("INSERT INTO licitacoes_firecracker (numero_licitacao, modalidade, objeto, data_hora_abertura, status, anexos, data_cadastro) VALUES ('{$numero_licitacao}', '{$modalidade}', '{$objeto}', '{$data_hora_abertura}', '{$status}', '{$anexosMultiplos}', now())") or die( mysql_error() ); echo("<script>javascript:alert('Licitação cadastrada com sucesso!');location.href='index.php';</script>"); } } else{ $erro++; }