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 });
    }

  • 相关阅读:
    内网横向渗透之票据传递攻击
    内网横向渗透之哈希传递攻击
    冰蝎2,3及哥斯拉特征分析
    钓鱼攻击之远程加载恶意Word模版文件上线CS
    powershell基础知识
    初学文件钓鱼
    powershell免杀
    tips
    ShardingSphere你还不会吗?(第一篇)
    Ubunt14.04+Nvidia drivers+cuda 8.0
  • 原文地址:https://www.cnblogs.com/cb521413/p/9366156.html
Copyright © 2011-2022 走看看