Search code examples
angular7angular-httpclient

How to pass 3 argument to backend with `POST` request?


According to backend, I require to pass 3 argument through post request, this backend function is:

public ResponseModel Post([FromBody] CourseFileUpload item, string fileName, Stream fileToUpload) 

now I am trying to pass the argument like this:

uploadFile(uploadData:ModelToFileSteam):Observable<ModelToFileSteam> {
        const fileName = uploadData.fileName;
        console.log('file name is', fileName);
        const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Access-Control-Allow-Origin':'*' });
        return this.http.post<ModelToFileSteam>(environment.baseUrl+`CourseFileUpload`, uploadData.fileToUpload, uploadData.fileName, uploadData.uploadStream)
        .pipe(
            map(data => {
                return data;
            } ),
            catchError(this.handleError)
        )
    }

But getting error, not able to pass 3 arguments at all. what is the correct way to do this?

any one help me?


Solution

  • I will suggest wrapping all in a single object. And send it to backend.

    Or just send uploadData

    return this.http.post<ModelToFileSteam>(environment.baseUrl+`CourseFileUpload`, uploadData)
            .pipe(
                map(data => {
                    return data;
                } ),
                catchError(this.handleError)
            )
    

    And in the backend, you can get uploadDate like req.body.uploadData To check you can console.log(uploadData.fileName);