Я пытаюсь загрузить файл из своего углового кода в серверную часть ASP.net.
Мой угловой код отправляет объект с использованием FormData:
public uploadFiles(files) {
console.log(files);
if(files.length < 1) return;
const formData = new FormData();
files.forEach(file => {
console.log(file);
formData.append(file.name, file);
})
this._http.postFile('/order-processing/import-orders','application/x-www-form-urlencoded' ,formData).pipe(finalize(() => {
console.log("Finalized");
})).subscribe((val: any) => {
console.log('ORDER SUBMITTED', val);
}, error => {
console.log(error);
});
}
С помощью метода post fileвыглядит как:
public postFile(path: string, contentType:string, body: FormData) : Observable<any> {
let headers = {
'Content-Type': contentType,
'Authorization': this.authToken
}
return this._http.post(environment.API_URL + path, body, {
headers
});
}
Моя конечная точка ASP.net выглядит следующим образом:
[HttpPost, Route("hospitality/order-processing/import-orders")]
[RequestSizeLimit(2147483648)]
[DisableRequestSizeLimit]
public IActionResult UploadFile()
{
try
{
//var req = Request.Form.Files;
var file = Request.Form.Files;
string folderName = "Uploads";
string webRootPath = _hostingEnvironment.WebRootPath;
string newPath = Path.Combine(webRootPath, folderName);
if (!Directory.Exists(newPath))
{
Directory.CreateDirectory(newPath);
}
return Json("Upload Successful.");
}
catch (Exception e)
{
return Json("Failed:" + e);
}
}
Если я проверяю вкладку сети в моем браузере при отправке файла, он говорит, что мой объект находится в вызове, отлично, но по какой-то причине он не обнаруживается на бэкэнде, и когда я перебираю код, его там нет.
При небольшом изменении этого кода я получаю разные ошибки.Ошибка для кода в том состоянии, в котором он находится сейчас: «Ключ формы или ограничение длины значения превышено 2048», однако иногда я получаю ошибки массива за пределами границ или ошибки превышения границы содержимого, этого достаточно, чтобы заставить вас захлопнуть васлицо в клавиатуру постоянно.
Весь смысл в том, чтобы иметь возможность загружать файл Excel в код ASP.net, работающий в лямбда-выражении AWS, который затем вставляет строки в базу данных RDS.Я иду об этом правильным путем?Есть ли лучший способ достичь того, что я пытаюсь сделать?Если нет, то что не так с моим кодом, который не позволяет загрузить файл в веб-API?!
Спасибо