postman 如何解决文件上传错误的 Postman ?

46scxncf  于 2022-11-07  发布在  Postman
关注(0)|答案(5)|浏览(481)

我在我的项目中使用webapi上传文件。我正在用Postman进行测试。但是,**Request.Content.IsMimeMultipartContent()**总是返回false。
Postman 截图:

文件上传控制器代码:

public async Task<HttpResponseMessage> UserImageUpload()
    {
        try
        {
            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }

            var userImageUploadPath = HttpContext.Current.Server.MapPath(CommonParameters.UserProfileImageServerPath);
            var streamProvider = new CustomMultipartFormDataStreamProvider(userImageUploadPath);
            await Request.Content.ReadAsMultipartAsync(streamProvider);

            var files = new List<string>();
            foreach (MultipartFileData file in streamProvider.FileData)
            {
                files.Add(Path.GetFileName(file.LocalFileName));
            }

            return Request.CreateResponse(HttpStatusCode.OK, files);
        }
        catch (Exception exception)
        {
            logger.ErrorFormat("An error occured in UserImageUpload() Method - Class:FileUploadController - Message:{0}", exception);
            return Request.CreateResponse(HttpStatusCode.BadRequest);
        }
    }
wsxa1bj1

wsxa1bj11#

这是 Postman 错误。请尝试移除内容类型标头。当传送实际的邮件时,浏览器会自动加入适当的标头并建立边界。

1sbrub3j

1sbrub3j2#

在Postman中没有必要在标题中提到内容类型,我尝试过发送没有内容类型的附件,它对我来说很好。当我使用Content-Type: multipart/formdata时,它抛出一个错误,说“无法获得任何响应”。Postman也使用Content-Type →text/plain; charset=utf-8发送您的文件附件。

g2ieeal7

g2ieeal73#

有几件事需要考虑:
1)如果您使用Postman,请不要传送任何内容类型信头
2)在Body中为您选择的文件指定Key(PFB屏幕截图供您参考)

pprl5pva

pprl5pva4#

我在ARC中遇到了同样的错误,通过提供文件字段的名称(在第二个屏幕截图上的蓝色复选标记之后)解决了这个错误。

ia2d9nvy

ia2d9nvy5#

您需要取消选中Content-Type(如果您已选中它),并让Postman为您添加它,如下图所示:

相关问题