我需要将客户端文件上传到服务器。
在这里,我的客户端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”则造成了问题。