Загрузка файла с использованием Razor без MVC - PullRequest
0 голосов
/ 11 марта 2020

Я новичок в своей должности и освобожден sh из колледжа. Команда, над которой я работаю, отказывается использовать MVC (не совсем уверен, почему), и все страницы - cs html страницы бритвы. Мне было поручено создать загрузку файлов для сайта, есть ли способ сделать это только с помощью Razor и javascript?

1 Ответ

0 голосов
/ 11 марта 2020

Я взял большую часть этого из приведенного ниже URL.

https://www.learnrazorpages.com/razor-pages/forms/file-upload

Создайте страницу загрузки, это позволит пользователю выбрать файл , когда пользователь нажимает на ввод ввода, он отправляет файл обратно на сервер.

@page
@model UploadFileModel
@{
}
<form method="post" enctype="multipart/form-data">
    <input type="file" asp-for="Upload" />
    <input type="submit" />
</form>

Вы можете обработать запрос на отправку, используя следующий код, который сохранит файл в папке загрузки.

using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using System.IO;
using System.Threading.Tasks;
namespace RazorPagesForms.Pages
{
    public class UploadFileModel : PageModel
    {
        private IHostingEnvironment _environment;
        public UploadFileModel(IHostingEnvironment environment)
        {
            _environment = environment;
        }
        [BindProperty]
        public IFormFile Upload { get; set; }
        public async Task OnPostAsync()
        {
            var file = Path.Combine(_environment.ContentRootPath, "uploads", Upload.FileName);
            using (var fileStream = new FileStream(file, FileMode.Create))
            {
                await Upload.CopyToAsync(fileStream);
            }
        }
    }
}
...