public async Task <IActionResult> EnviarArquivo(List <IFormFile> arquivos) { ViewBag.Carregamento = "Carregando"; var arquivoImportado = new ArquivosImportados(); int _contagem = 0; long tamanhoArquivos = arquivos.Sum(f => f.Length); // caminho completo do arquivo na localização temporária var caminhoArquivo = Path.GetTempFileName(); // processa os arquivo enviados //percorre a lista de arquivos selecionados foreach (var arquivo in arquivos) { //verifica se existem arquivos if (arquivo == null || arquivo.Length == 0) { //retorna a viewdata com erro ViewData["Erro"] = "Error: Arquivo(s) não selecionado(s)"; return(View(ViewData)); } // < define a pasta onde vamos salvar os arquivos > string pasta = "Arquivos_Usuario"; // Define um nome para o arquivo enviado incluindo o sufixo obtido de milesegundos string nomeArquivo = "Passagens_" + DateTime.Now.Millisecond.ToString(); //verifica qual o tipo de arquivo : xlsx, xls ou tmp if (arquivo.FileName.Contains(".xlsx")) { nomeArquivo += ".xlsx"; } else if (arquivo.FileName.Contains(".xls")) { nomeArquivo += ".xls"; } else { nomeArquivo += ".tmp"; } //< obtém o caminho físico da pasta wwwroot > string caminho_WebRoot = _appEnvironment.WebRootPath; // monta o caminho onde vamos salvar o arquivo : // ~\wwwroot\Arquivos\Arquivos_Usuario\Recebidos string caminhoDestinoArquivo = caminho_WebRoot + "\\" + pasta + "\\"; // incluir a pasta Recebidos e o nome do arquivo enviado : // ~\wwwroot\Arquivos\Arquivos_Usuario\Recebidos\ string caminhoDestinoArquivoOriginal = caminhoDestinoArquivo + "\\Recebidos\\" + nomeArquivo; string caminhoArquivoServ = caminhoDestinoArquivo + "\\Recebidos\\"; //copia o arquivo para o local de destino original using (var stream = new FileStream(caminhoDestinoArquivoOriginal, FileMode.Create)) { await arquivo.CopyToAsync(stream); } arquivoImportado.NomeOrigem = arquivo.FileName; arquivoImportado.NomeGerado = nomeArquivo; arquivoImportado.PastaImportacao = caminhoArquivoServ; arquivoImportado.DataImportacao = DateTime.Today; arquivoImportado.PessoaIdCad = 1; arquivoImportado.PessoaIdEmp = 1; //Salva arquivo _competenciaRepository.SalvarArquivoImportado(arquivoImportado); //Busca Id arquivo arquivoImportado = _competenciaRepository.GetArquivoImportadoId(arquivoImportado.NomeGerado); _contagem++; } List <Passagem> listaPassagens = new List <Passagem>(); CompararArquivo compararArquivo = new CompararArquivo(); //listaPassagens = compararArquivo.CompararArquivos(comparacaoArquivos); //PassagensPedagio List <PassagensPedagio> listaPassagensPedagio = new List <PassagensPedagio>(); listaPassagensPedagio = compararArquivo.LerAbaPassagensPedagio(arquivoImportado); foreach (PassagensPedagio passagensPedagio in listaPassagensPedagio) { _competenciaRepository.SalvarPassagensPedagio(passagensPedagio); } //PassagensValePedagio List <PassagensValePedagio> listaPassagensValePedagios = new List <PassagensValePedagio>(); listaPassagensValePedagios = compararArquivo.LerAbaPassagensValePedagio(arquivoImportado); foreach (PassagensValePedagio passagemValePedagio in listaPassagensValePedagios) { _competenciaRepository.SalvarPassagensValePedagio(passagemValePedagio); } //Creditos List <Creditos> listaCreditos = new List <Creditos>(); listaCreditos = compararArquivo.LerAbaCreditos(arquivoImportado); foreach (Creditos credito in listaCreditos) { _competenciaRepository.SalvarCreditos(credito); } return(Redirect("CompararExcelLista")); }