ASP, NET MVC изменяют виртуальный путь на физический путь при загрузке файла - PullRequest
0 голосов
/ 20 марта 2019

Мне нужно сохранить файлы где-нибудь еще, потому что сервер, который заполняется этим приложением

Как бы я изменил виртуальный путь на физический путь?

Это мой оригинальный контроллер

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create(FormularioDoUploadViewModel formularioDoUploadViewModel)
        {
            if (ModelState.IsValid)
            {
                List<DetalhesDoArquivoViewModel> detalhesDosArquivos = new List<DetalhesDoArquivoViewModel>();

                for (int i = 0; i < Request.Files.Count; i++)
                {
                    var file = Request.Files[i];

                    if (file != null && file.ContentLength > 0)
                    {
                        var fileName = Path.GetFileName(file.FileName);
                        DetalhesDoArquivoViewModel detalhesDoArquivo = new DetalhesDoArquivoViewModel()
                        {
                            FileName = fileName,
                            Extension = Path.GetExtension(fileName)
                        };

                        detalhesDosArquivos.Add(detalhesDoArquivo);
                        var path = Path.Combine(Server.MapPath(@"~/App_Data/Upload/"), detalhesDoArquivo.Id + detalhesDoArquivo.Extension);
                        file.SaveAs(path);
                    }

                }

                formularioDoUploadViewModel.DetalhesDoArquivo = detalhesDosArquivos;

                _uploadServices.AdicionarArquivo(formularioDoUploadViewModel);

                return RedirectToAction("Index");
            }

            return View(formularioDoUploadViewModel);
        }

и я хочу вставить этот путь в путь переменной:

 var path = Path.Combine(Server.MapPath(@"C:\Users\bwm6\Desktop\uploads"), detalhesDoArquivo.Id + detalhesDoArquivo.Extension);

1 Ответ

0 голосов
/ 20 марта 2019

Замените относительный путь вашим абсолютным путем.Убедитесь, что ваши разрешения для записи в каталог.Вы можете использовать System.IO.File для доступа к системным файлам.Эта ссылка поможет вам понять, как это сделать: Как преобразовать относительный путь в абсолютный путь в приложении Windows?

...