为什么某些特定的图像文件无法上传

时间:2018-07-11 07:15:39

标签: c# angular asp.net-web-api file-upload

我需要将客户端文件上传到服务器。

在这里,我的客户端Web应用程序是在Angular上构建的,并使用.net API将图像文件推送到服务器。 现在该应用程序运行良好,但是有一天我的客户发现该应用程序无法上传1个特定文件。我在本地系统上进行了尝试,使用相同的代码,一切进展顺利。 但是,当我用发布的代码尝试相同的操作时,是的,它将不适用于该文件。

经过大量研究和代码更改,我无法解决我的问题。我通过编辑该文件并重新上传尝试了同一个文件,效果很好。但这不是客户端的选择。

1。以下是我的角度式Web应用程序演示代码,该代码将文件发布到.net api方法 UploadFileMethod

let formData: FormData = new FormData();
let httpUploadRequest = this.apiservice.UploadFiles('api/UploadFileMethod', formData).subscribe(
data => {
    if (data.Status === 'Success') {
    }
},
err => {
    //COME HERE FROM API CALL FOR SOME SPECIFIC FILES
});

2。以下是我的.net webapi演示功能,可以接受文件

[HttpPost]
public IHttpActionResult UploadFileMethod()
{
    var httpRequest = HttpContext.Current.Request;
    if (httpRequest.Files.Count > 0)
    {
        HttpPostedFile postedFile = httpRequest.Files[file];
        //SAVE FILE
    }
}

当我尝试使用日志时,我发现httpRequest.Files.Count返回0。相同的代码可以完美地用于许多其他文件。

下面是错误日志

Error Message : An error occurred while communicating with the remote host. The error code is 0x80070001.
Error Details :    at System.Web.Hosting.IIS7WorkerRequest.RaiseCommunicationError(Int32 result, Boolean throwOnDisconnect)
   at System.Web.Hosting.IIS7WorkerRequest.ReadEntityCoreSync(Byte[] buffer, Int32 offset, Int32 size)
   at System.Web.HttpRequest.GetEntireRawContent()
   at System.Web.HttpRequest.GetMultipartContent()
   at System.Web.HttpRequest.FillInFormCollection()
   at System.Web.HttpRequest.EnsureForm()
   at System.Web.HttpRequest.get_Form()
   at System.Web.HttpRequest.FillInParamsCollection()
   at System.Web.HttpRequest.GetParams()
   at MagnitudeGoldWebApp.Controllers.v1.CaptureController.UploadFileMethod()

我使用相同功能“ good.jpg”上传的文件成功上传,而“ bad.jpg”则造成了问题。

good.jpg

bad.jpg

0 个答案:

没有答案