如何使用angular将文件发送到asp.net Web API?

捷克文

基本上我想要的是将文件发送到mi Web API,然后将其上传到Azure。当我选择文件时会触发此代码,但是我不确定它是否正确。

$scope.fileNameChanged = function(files)
{
    var formD = new FormData();
    var reader = new FileReader();
    reader.onload = function(e)
    {
        $scope.$apply(function()
       {
          $scope.files = reader.result;      
       });
     
    };
    formD.append("file",files.files[0]);
    reader.readAsText(files.files[0]);

    $http({

    method: 'POST',
    headers: {'Content-Type': undefined},
    data:{formD},
    transformRequest : angular.identity,
    url: 'http://localhost:12199/api/FacturacionWeb/PostFormData'
     
    }).success(function(data)
    { 
      
    }).then(function(dat)
      {
        
      })
     
}
<input type="file" multiple onchange="angular.element(this).scope().fileNameChanged(this)">
    <div>Import file...</div>

     <div>
  <textarea ng-model="files" accept=".txt" readonly="true" style="width:99%; height:500px" disabled></textarea>

ASP.NET C#代码(后端)此代码是我在后端得到的,但始终会得到“ UnsupportedMediaType”,我不知道问题是与角度还是与ASP有关,请帮帮我!!

   public async Task<HttpResponseMessage> PostFormData(HttpRequestMessage request)
    {
        // Check if the request contains multipart/form-data.
        if (!Request.Content.IsMimeMultipartContent())
        {
            throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
        }

        string root = HttpContext.Current.Server.MapPath("~/App_Data");
        var provider = new MultipartFormDataStreamProvider(root);

        try
        {
            // Read the form data.
            await Request.Content.ReadAsMultipartAsync(provider);

            // This illustrates how to get the file names.
            foreach (MultipartFileData file in provider.FileData)
            {
                Trace.WriteLine(file.Headers.ContentDisposition.FileName);
                Trace.WriteLine("Server file path: " + file.LocalFileName);
            }
            return Request.CreateResponse(HttpStatusCode.OK);
        }
        catch (System.Exception e)
        {
            return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
        }
    }
谢兰德拉·辛格·多尔(Shailendra Singh Deol)

您的angularjs代码很好。您需要像这样更新您的asp.net代码-

public async Task<HttpResponseMessage> PostFormData(HttpRequestMessage request)
    {
        // Check if the request contains multipart/form-data.
       if (!request.Content.IsMimeMultipartContent("form-data"))
            {
            throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
        }

        string root = HttpContext.Current.Server.MapPath("~/App_Data");
        var provider = new MultipartFormDataStreamProvider(root);

        try
        {
            // Read the form data.
            await Request.Content.ReadAsMultipartAsync(provider);

            // This illustrates how to get the file names.
            foreach (MultipartFileData file in provider.FileData)
            {
                Trace.WriteLine(file.Headers.ContentDisposition.FileName);
                Trace.WriteLine("Server file path: " + file.LocalFileName);
            }
            return Request.CreateResponse(HttpStatusCode.OK);
        }
        catch (System.Exception e)
        {
            return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
        }
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用ASP.NET Web API将文件列表返回到Angular Application

使用ASP.net Core Web API发送多个文件

ASP.Net Web API与.Net核心Web API

如何将图像从openCV发送到Web API

无法使用log4javascript将客户端日志发送到服务器(Asp.net Web API)

ASP.NET Web API将复杂对象发送到前端

是否可以从Angular 6应用程序将FormData和图像文件发送到Web API

如何将多部分/表单数据发送到ASP.NET Core Web API?

如何将文件从Angular上传到ASP.NET Core Web API

Angular / Web API:将FormFile信息从客户端发送到API

如何将表单的数据发送到用Angular中的[FromForm]装饰的ASP.NET Core Web API操作?

如何将文件发送到列表-.NET Core Web API-邮递员

将List <T>作为可选参数发送到ASP.NET Core Web Api中的帖子正文中

如何将GET请求从Internet Explorer发送到Asp.Net Core API?

如何将图像文件从Angular发送到.net核心API

如何将2个对象发送到我的API(ASP.NET)?

使用http party将json发送到Web API

如何在IE8中使用Ajax将图像发送到.net Web服务?

AngularJS $ http.post()将null发送到ASP.NET Web API控制器方法

如何将JS对象的集合发送到ASP.NET API服务?

ASP .NET Web API返回JSON文件

将 ASP.NET MVC HttpContext 发送到 Web Api HttpContext

ASP.Net Web API HttpClient 不会将数据发送到目标 Web API Uri

如何使用 fetch 将 FormData 从 javascript 发送到 ASP.NET Core 2.1 Web API

使用数据创建重置密码链接并发送到电子邮件 ASP.NET Core Web-API

如何使用 Axios 将多个文件发送到 ASP.NET Core 的控制器?

使用 vanilla Javascript 将字符串列表发送到 ASP.net api 控制器

如何从 .NET Core Web API 服务器 docker 容器将标签打印作业发送到网络 CUPS/Raspberry Pi 打印服务器?

将图像从 ASP.NET Web API 发送到 Angular 客户端