使用没有 MVC 的 Razor 上传文件
File upload using Razor without MVC
我是新人,刚从大学毕业。我正在开发的团队拒绝使用 MVC(不确定为什么)并且所有页面都是 cshtml razor 页面。我的任务是为网站创建文件上传,有没有办法只使用 Razor 和 javascript?
我从下面的 url 中获取了大部分内容。
https://www.learnrazorpages.com/razor-pages/forms/file-upload
创建上传页面,这将允许用户select一个文件,当用户点击提交输入时它会post将文件传回服务器。
@page
@model UploadFileModel
@{
}
<form method="post" enctype="multipart/form-data">
<input type="file" asp-for="Upload" />
<input type="submit" />
</form>
您可以使用以下代码处理 post 请求,这会将文件保存到上传文件夹。
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);
}
}
}
}
我是新人,刚从大学毕业。我正在开发的团队拒绝使用 MVC(不确定为什么)并且所有页面都是 cshtml razor 页面。我的任务是为网站创建文件上传,有没有办法只使用 Razor 和 javascript?
我从下面的 url 中获取了大部分内容。
https://www.learnrazorpages.com/razor-pages/forms/file-upload
创建上传页面,这将允许用户select一个文件,当用户点击提交输入时它会post将文件传回服务器。
@page
@model UploadFileModel
@{
}
<form method="post" enctype="multipart/form-data">
<input type="file" asp-for="Upload" />
<input type="submit" />
</form>
您可以使用以下代码处理 post 请求,这会将文件保存到上传文件夹。
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);
}
}
}
}