首页 > 解决方案 > C#中的文件上传

问题描述

我正在从前端 Angular 6 向我的后端 C# (ASP.NET) 发送一个文件。并且希望将该文件保存在后端服务器的一个文件夹中,并将该路径保存在 MS SQL 数据库中。

   [EnableCors(origins: " * ", headers: " * ", methods: " * ")]  
    [AcceptVerbs("GET", "POST")]  
    [HttpGet]  
    [Route("CustomerSignature/Upload")]  
    public virtual IHttpActionResult Upload(int value)  
    {  
        string imageName = null;  
        string statuscode = " - 1";  
        string message = "";  

        HttpResponseMessage response = Request.CreateResponse();  





        try  
        {  

            var httpRequest = HttpContext.Current.Request;  

        }  
        catch (SqlException sqlex)  
        {  
            statuscode = "- 1";  
            response.StatusCode = HttpStatusCode.NotFound;  
            response.Headers.Add("Error", sqlex.Message);  
            message = ERPMessages.GetMessage(MessageType.FindByErrorSQL, this.Controller);  
        }  
        catch (Exception ex)  
        {  
            statuscode = " - 2";  
            response.StatusCode = HttpStatusCode.NotFound;  
            response.Headers.Add("Error", ex.Message);  
            message = ERPMessages.GetMessage(MessageType.FindByErrorGenaral, this.Controller);  
        }  
        return new MergeResult(response, statuscode, message, 0);  
    }  
}  

上面,读取“HttpContext.Current.Request”后,如何获取请求中的文件并将其保存在文件夹中,并将文件路径保存在数据库中?请帮我解决这个问题。

标签: asp.net

解决方案


您可以尝试以下类似的方法:

 public HttpResponseMessage Post()  
 {  
     HttpResponseMessage result = null;  
     var httpRequest = HttpContext.Current.Request;  
     if (httpRequest.Files.Count > 0)  
     {  
          var filePathCollection = new List<string>();  
          foreach (string file in httpRequest.Files)  
          {  
              var postedFile = httpRequest.Files[file];  
              var filePath = HttpContext.Current.Server.MapPath("~/" + postedFile.FileName);  
              postedFile.SaveAs(filePath);  
              filePathCollection.Add(filePath);

          }  

          /// Save FilePathcollection in SQL Server
          result = Request.CreateResponse(HttpStatusCode.Created, docfiles);  
      }  
      else  
      {  
          result = Request.CreateResponse(HttpStatusCode.BadRequest);  
      }  

      return result;  
}  

推荐阅读