Issue Creating Web API for Document Upload

Certified Associate Developer

I have created a web api for uploading documents into appian application

a!localVariables(
  local!body:http!request.body,
  local!key: http!request.pathSegments,
  local!keyNumber:regexfirstmatch(pattern: "\d+", searchString: local!key),
  local!requestStructure: rule!PRE_FormatRcoDocumentRequestFromMyWorldRequest(jsonRequest: todocument(local!body), key: local!key),
  if(
    or(
      a!isNullOrEmpty(local!requestStructure),
      a!isNullOrEmpty(local!key)
    ),
    a!httpResponse(
      statusCode: 400,
      headers: {
        a!httpHeader(
          name: "Content-Type",
          value: "application/json"
        )
      },
      body: a!toJson(a!map(error: local!requestStructure))
    ),
  
    a!startProcess(
      processModel: cons!PRE_PM_UPLOAD_DOCUMENTS,
      processParameters: {
        uploadDocuments:local!requestStructure,
        intakeMain:'recordType!{9228ede4-797f-443e-ba77-59aeed242b7a}PRELUDE Intake Main'(
          'recordType!{9228ede4-797f-443e-ba77-59aeed242b7a}PRELUDE Intake Main.fields.{61b2bc9e-c8e3-4635-bde7-b9c829a75682}idIntakeMain': local!key
        )
      },
      isSynchronous: true(),
      onSuccess: a!httpResponse(
        statusCode: 200,
        headers: {
          a!httpHeader(
            name: "Content-Type",
            value: "application/json"
          )
        },
        body: if(
          a!isNotNullOrEmpty(fv!processInfo),
          a!toJson(
            {
              rule!PRE_CreateResponseForMyWorldRcoComment(fv!processInfo.pv.RecordsUpdated),
              
            }
          ),
          null()
        )
      ),
      onError: a!httpResponse(
        statusCode: 500,
        headers: {
          a!httpHeader(
            name: "Content-Type",
            value: "application/json"
          )
        },
        body: a!toJson(
          {
            error: "There was an error starting the process"
          }
        )
      )
    )
  ),
  
)


This works perfectly fine if I use body as Binary to upload file but issue occurs when I am trying to use body as multipart/form-data

For the sake of clarity I have created an integration for this API and this is the result I am getting :

Scenario 1: Using Body as Document (Auto-Detect)


I am able to upload a png file

Scenario 2: Using Body as Multipart Form Data




In this scenario png file is getting converted as txt and following text is getting added into the file(I have attached the file for more clarification)

--TnQmfygKfP801A_kE1bGL-7YAFk_k6gl9
Content-Disposition: form-data; name="file"; filename="Profile Picture.jpg"
Content-Type: image/png
Content-Transfer-Encoding: binary


Untitled document from web API (12).txt

  Discussion posts and replies are publicly visible

Parents Reply Children
No Data