为了账号安全,请及时绑定邮箱和手机立即绑定

如何接受文件POST

如何接受文件POST

C#
慕尼黑的夜晚无繁华 2019-08-09 10:43:24
如何接受文件POST我正在使用asp.net mvc 4 webapi beta来构建休息服务。我需要能够从客户端应用程序接受POSTed图像/文件。这可能使用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";}
查看完整描述

3 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

我很惊讶很多人似乎想在服务器上保存文件。将所有内容保存在内存中的解决方案如下:

[HttpPost, Route("api/upload")]public async Task<IHttpActionResult> Upload(){
    if (!Request.Content.IsMimeMultipartContent())
        throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); 

    var provider = new MultipartMemoryStreamProvider();
    await Request.Content.ReadAsMultipartAsync(provider);
    foreach (var file in provider.Contents)
    {
        var filename = file.Headers.ContentDisposition.FileName.Trim('\"');
        var buffer = await file.ReadAsByteArrayAsync();
        //Do whatever you want with filename and its binary data.
    }

    return Ok();}


查看完整回答
反对 回复 2019-08-09
  • 3 回答
  • 0 关注
  • 576 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信