如何接受文件发布

如何接受文件发布

我正在使用ASP.NETMVC4webapibeta来构建REST服务。我需要能够接受张贴的图像/文件从客户端应用程序。这有可能使用webapi吗?下面是我目前正在使用的操作。有谁知道这个应该如何运作的例子吗?

[HttpPost]public string ProfileImagePost(HttpPostedFile profileImage){
    string[] extensions = { ".jpg", ".jpeg", ".gif", ".bmp", ".png" };
    if (!extensions.Any(x => x.Equals(Path.GetExtension(profileImage.FileName.ToLower()), StringComparison.OrdinalIgnoreCase)))
    {
        throw new HttpResponseException("Invalid file type.", HttpStatusCode.BadRequest);
    }

    // Other code goes here

    return "/path/to/image.png";}


青春有我
浏览 395回答 3
3回答

慕丝7291255

我很惊讶你们中的很多人似乎想在服务器上保存文件。将所有内容保存在内存中的解决方案如下:[HttpPost,&nbsp;Route("api/upload")]public&nbsp;async&nbsp;Task<IHttpActionResult>&nbsp;Upload(){ &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!Request.Content.IsMimeMultipartContent()) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;HttpResponseException(HttpStatusCode.UnsupportedMediaType);&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;provider&nbsp;=&nbsp;new&nbsp;MultipartMemoryStreamProvider(); &nbsp;&nbsp;&nbsp;&nbsp;await&nbsp;Request.Content.ReadAsMultipartAsync(provider); &nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(var&nbsp;file&nbsp;in&nbsp;provider.Contents) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;filename&nbsp;=&nbsp;file.Headers.ContentDisposition.FileName.Trim('\"'); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;buffer&nbsp;=&nbsp;await&nbsp;file.ReadAsByteArrayAsync(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Do&nbsp;whatever&nbsp;you&nbsp;want&nbsp;with&nbsp;filename&nbsp;and&nbsp;its&nbsp;binary&nbsp;data. &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;Ok();}
打开App,查看更多内容
随时随地看视频慕课网APP