• .Net Core Web API 上传图片或文件


    1.dotnet Core 这里使用 List<IFormFile> 作为接收参数 进行接收文件

     1         /// <summary>
     2         /// 上传文件
     3         /// </summary>
     4         /// <param name="files">文件流</param>
     5         /// <returns></returns>
     6         [HttpPost]
     7         public OkObjectResult FileSave(List<IFormFile> files)
     8         {
     9 
    10             if (files.Count < 1)
    11             {
    12                 return Ok("空文件");
    13             }
    14             //返回的文件地址
    15             List<string> filenames = new List<string>();
    16             DateTime now = DateTime.Now;
    17             //文件存储路径
    18             string filePath = string.Format("/Uploads/{0}/{1}/{2}/", now.ToString("yyyy"), now.ToString("yyyyMM"), now.ToString("yyyyMMdd"));
    19             //获取当前web目录
    20             var webRootPath = "File/"; ;
    21             if (!Directory.Exists(webRootPath + filePath))
    22             {
    23                 Directory.CreateDirectory(webRootPath + filePath);
    24             }
    25             try
    26             {
    27                 foreach (var item in files)
    28                 {
    29                     if (item != null)
    30                     {
    31                         #region  图片文件的条件判断
    32                         //文件后缀
    33                         string fileExtension = Path.GetExtension(item.FileName);
    34 
    35                         //判断后缀是否是图片
    36                         const string fileFilt = ".gif|.jpg|.jpeg|.png";
    37                         if (fileExtension == null)
    38                         {
    39                             break;
    40                             //return Error("上传的文件没有后缀");
    41                         }
    42                         if (fileFilt.IndexOf(fileExtension.ToLower(), StringComparison.Ordinal) <= -1)
    43                         {
    44                             break;
    45                             //return Error("请上传jpg、png、gif格式的图片");
    46                         }
    47 
    48                         //判断文件大小    
    49                         long length = item.Length;
    50                         if (length > 1024 * 1024 * 2) //2M
    51                         {
    52                             break;
    53                             //return Error("上传的文件不能大于2M");
    54                         }
    55 
    56                         #endregion
    57 
    58                         string strDateTime = DateTime.Now.ToString("yyMMddhhmmssfff"); //取得时间字符串
    59                         string strRan = Convert.ToString(new Random().Next(100, 999)); //生成三位随机数
    60                         string saveName = strDateTime + strRan + fileExtension;
    61 
    62                         //插入图片数据                 
    63                         using (FileStream fs = System.IO.File.Create(webRootPath + filePath + saveName))
    64                         {
    65                             item.CopyTo(fs);
    66                             fs.Flush();
    67                         }
    68                         filenames.Add(filePath + saveName);
    69                     }
    70                 }
    71                 return Ok(filenames);
    72             }
    73             catch (Exception ex)
    74             {
    75                 //这边增加日志,记录错误的原因
    76                 //ex.ToString();
    77                 return Ok("上传失败");
    78             }
    79         }

    2.前端使用FormData接收文件JS内容,这里采用的是form表单提交的方式,引入两个(jquery.js ,form.js)文件

    <script src="http://code.jquery.com/jquery-latest.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.2.2/jquery.form.min.js" integrity="sha384-FzT3vTVGXqf7wRfy8k4BiyzvbNfeYjK+frTVqZeNDFl8woCbF0CYG6g2fMEFFo/i" crossorigin="anonymous"></script>

     1.HTML 内容

    <h1>通过form表单提交</h1>
    <form id="myform" name="myform" method="post" enctype="multipart/form-data" 
                        action="https://localhost:44376/Upload/FormImg">
        <input type="file" name="files" id="files" value="选择需要上传的文件" multiple />
        <input type="button" id="submitbtn" value="提交" onclick="uplpadfile()">
    </form>

    <script type="text/javascript">     //前端第一种提交方式 function uplpadfile(){ //获取表单的数据 var formdata var file = $("#files").get(0); var files = file.files; var formdata = new FormData(); for (var i = 0; i < files.length; i++) { formdata.append("files", files[i]); } $.ajax({ type:'Post', data:formdata, contentType: false, processData: false, url:"https://localhost:44398/api/WeatherForecast/FileSave", success:function(result){ if (result.Success) { var imglist =result.Data; for(var i in imglist){ $("#imglist").append('<img src="'+https://localhost:44398+imglist[i]+'"/>'); } }else{ alert('提交失败,重新尝试提交'); } } }) };
  • 相关阅读:
    L347
    2019.4.22 英语阅读
    L345 大脑复生
    L343 中译英
    L342 Air Pollution Is Doing More Than Just Slowly Killing Us
    Is It Always a Good Idea to Reach Outside Your Comfort Zone?
    2019.4月 商务英语场景
    元器件横截面-这里有很多专业词汇
    python 列表和元组 还有range
    python 基本数据类型简介intstr bool
  • 原文地址:https://www.cnblogs.com/XiangZiPeng/p/12371058.html
Copyright © 2020-2023  润新知