ASP.NET Core 中的文件上傳


ASP.NET Core上傳文件

ASP.NET Core使用IFormFile來讀取上傳的文件內容,然后將數據寫入到磁盤或其它存儲空間。

  1. 添加FileUpload模型,用來接收上傳的文件內容。
public class FileUpload
{
    public string Name { get; set; }

    [Required]
    public IFormFile SelectedFile { get; set; }
}
  1. 在Form中添加enctype=multipart/form-data屬性,完整的Form代碼如下:
<form method="post" action="~/Upload" enctype="multipart/form-data">
    <p>
        <label>名稱: </label>
        <input type="text" asp-for="FileUpload.Name" />
    </p>
    <p>
        <label>選擇文件: </label>
        <input type="file" asp-for="FileUpload.SelectedFile" />
    </p>
    <input type="submit" value="提交" />
</form>
  1. 添加OnPostAsync方法,處理submit的文件
[BindProperty]
public FileUpload FileUpload { get; set; }

public async Task<IActionResult> OnPostAsync()
{
    if (!ModelState.IsValid)
    {
        this.Error = "輸入錯誤";
        return Redirect("~/Upload");
    }

    //保存文件
    string path = Path.Combine(Environment.CurrentDirectory, "Upload", Guid.NewGuid().ToString("n"));
    using (var fileStream = new FileStream(path, FileMode.Create))
    {
        await FileUpload.SelectedFile.CopyToAsync(fileStream);
    }
    
    return Page();
}

通過以上步驟即可完成簡單的文件上傳。

注意:這種方式只能處理小文件的上傳,當上傳大文件時,需要參考一下步驟:ASP.NET Core 中的文件上傳


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM