I'm using the following POST
in order to send both Files
and some data(type: 'application/json')
.
This is my code where sending the data :
save(data: IRishum, filesA: File[]): Observable<any> {
const formData = new FormData();
// add the files
if (filesA && filesA.length) {
Array.from(filesA).forEach(file => formData.append('filesA', file));
}
// add the data object
formData.append('data', new Blob([JSON.stringify(data)], {type: 'application/json'}));
console.log(formData.getAll("filesA"));
return this._httpClient.post<IRishum>(this.apiUrl, formData);
}
Then, I'm trying to extract the data in my server side.
public async Task<ResultOfOperation<int>> Rishum(IFormCollection formdata)
{
var result = new ResultOfOperation<int>();
try
{
var name = formdata["data"];
var files = HttpContext.Request.Form.Files;
foreach (var file in files)
{
var uploads = Path.Combine(_environment.ContentRootPath, "Images");
if (file.Length > 0)
{
string FileName = Guid.NewGuid().ToString(); // Give file name
using (var fileStream = new FileStream(Path.Combine(uploads, FileName), FileMode.Create))
{
await file.CopyToAsync(fileStream);
}
}
}
}
But, name
is null. So probably I'm doing something wrong.