/** * Salvar os arquivos carregados * * @param string $nm Nome do arquivo a ser salvo * @param bool $se Se true, sobrescreve o arquivo atual, se existir * * @return int Quantidade de arquivos salvos * @throws \DL3Exception */ public function salvar($nm = null, $se = false) { # Diretório onde os arquivos serão salvos $d = ".{$this->diretorio}"; $qt = 0; if (!file_exists($d)) { throw new \DL3Exception(sprintf(ERRO_UPLOAD_SALVAR_DIRETORIO_NAO_LOCALIZADO, $d), 1404); } // Fim if foreach ($this->obterArquivos() as $a) { if ($a['erro'] !== 0 || !file_exists($a['tmp'])) { continue; } // Fim if # Contar a quantidade de arquivos enviados $qt++; # Obter as informações desse arquivo $i = \Arquivos::obterInfos($a['tmp']); $ext = !empty($i['extensao']) ? $i['extensao'] : end(explode('.', $a['nome'])); # Verificar se a extensão do arquivo deve ser aceita ou se não há # limitação das extensões if (count($this->extensoes) > 0 && !in_array($i['extensao'], $this->extensoes)) { # Remover o arquivo temporário para não ter o risco de sobrecarregar o servidor unlink($a['tmp']); # Incluir o nome do arquivo no vetor $nao_salvos $this->nao_salvos['extensao'][] = $a['nome']; if ($this->conf_bloq_extensao) { throw new \DL3Exception(sprintf(ERRO_UPLOAD_SALVAR_BLOQ_EXTENSAO, $a['nome'], implode(', ', $this->extensoes)), 1403); } // Fim if # Passar para o próximo passo do laço continue; } // Fim if $n = $this->definirNome($i['nome'], $nm); $c = "{$d}/{$n}.{$ext}"; if (!$se) { $q = 0; while (file_exists($c)) { $c = "{$d}/{$n}-{$q}.{$ext}"; $q++; } // Fim while } // Fim if if (move_uploaded_file($a['tmp'], $c)) { $this->salvos[] = $c; } // Fim if } // Fim foreach return count($this->salvos); }