zoukankan      html  css  js  c++  java
  • ASP.NET Core文件上传、下载与删除

    首先我们需要创建一个form表单如下:

    <form method="post" enctype="multipart/form-data" asp-controller="UpLoadFile" asp-action="FileSave">

            <div>

                <div>

                    <p>Form表单多个上传文件:</p>

                    <input type="file" name="files" multiple />

                    <input type="submit" value="上传" />

                </div>

            </div>

        </form>

    private IHostingEnvironment _hostingEnvironment;
    public HomeController(IHostingEnvironment hostingEnvironment)
    {

    _hostingEnvironment = hostingEnvironment;
    }

    //[RequestSizeLimit(100_000_000)] //最大100m左右
    //[DisableRequestSizeLimit] //或者取消大小的限制
    public IActionResult Upload()
    {
    var files = Request.Form.Files;

    long size = files.Sum(f => f.Length);

    string webRootPath = _hostingEnvironment.WebRootPath;

    string contentRootPath = _hostingEnvironment.ContentRootPath;
    List<string> filenames=new List<string>();
    foreach (var formFile in files)

    {

    if (formFile.Length > 0)

    {
    string fileExt = Path.GetExtension(formFile.FileName); //文件扩展名,不含“.”

    long fileSize = formFile.Length; //获得文件大小,以字节为单位

    string newFileName = System.Guid.NewGuid().ToString()+ fileExt; //随机生成新的文件名

    var filePath = webRootPath + "/upload/";
    if (!Directory.Exists(filePath))
    {
    Directory.CreateDirectory(filePath);
    }
    using (var stream = new FileStream(filePath+ newFileName, FileMode.Create))

    {
    formFile.CopyTo(stream);
    }
    filenames.Add(newFileName);
    }

    }

    return Ok(new { filenames, count = files.Count,size });
    }
    public IActionResult DownLoad(string file)

    {
    string webRootPath = _hostingEnvironment.WebRootPath;
    var addrUrl = webRootPath+"/upload/"+ file;

    var stream = System.IO.File.OpenRead(addrUrl);

    string fileExt = Path.GetExtension(file);

    //获取文件的ContentType

    var provider = new FileExtensionContentTypeProvider();

    var memi = provider.Mappings[fileExt];

    return File(stream, memi, Path.GetFileName(addrUrl));

    }

    public IActionResult DeleteFile(string file)
    {
    string webRootPath = _hostingEnvironment.WebRootPath;
    var addrUrl = webRootPath + "/upload/" + file;
    if (System.IO.File.Exists(addrUrl))
    {
    //删除文件
    System.IO.File.Delete(addrUrl);
    }
    return Ok(new { file });
    }

  • 相关阅读:
    css常用小知识点汇总(一)
    TweenMax的GSAP(GreenSock动画平台)GSAP,专业的Web动画库
    前端node面试题之---对比JS和NodeJS的区别
    Math.min() Math.max() Math.min().apply() Math.max() .apply()该如何使用???
    zrender的线性渐变
    webkit内核的浏览器常见7种分别是..
    node创建项目,要ejs模板引擎,不要jade怎么办?
    【正则】——深入正则表达式,手写常用正则表单验证
    【bug】—— ios scroll 滚动穿透
    【bug】—— H5页面在 ios 端滑动不流畅的问题
  • 原文地址:https://www.cnblogs.com/cb521413/p/9366156.html
Copyright © 2011-2022 走看看