HP ALM REST API Reference version 12.50
Attachments Example
Javascript Example
Copy Code
// crud_File.js

function performCRUDFile(){
    console.log(">>performCRUDFile was called...");
    // create entity Defect
    var createdEntity = postNewDefect("defect for attachments"); // see CRUD_Instance.js
    printEntity("created entity:", createdEntity);

    //var formData = getFormWithFile_rest_version(createdEntity)
    var formData = getFormWithFile_api_version(createdEntity)
    var createdAttachment = addAttachment(formData);
    printEntity("created attachment", createdAttachment);

    console.log(">>performCRUDFile end.");
}

function addAttachment(formData){
    console.log("addAttachment was called...");
    var req = new XMLHttpRequest();
    req.open("POST", alm_project_url + "/attachments/", false);
    req.setRequestHeader("Accept", "application/json");
    
    req.onreadystatechange = function(){
        // if state is "complete"
        if (req.readyState == 4) {
            // & response status is "OK"
            if (req.status == 201){
                createdEntity = JSON.parse(req.responseText);
            } else {
                console.log("Failed. Response status:" + req.statusText);
            }
        }
    }
    req.send(formData);
    console.log("addAttachment end.");
    return createdEntity;
}
function getFormWithFile_api_version(entity){
    var fileInputElement = document.getElementById("uploadfile");

    var formData = new FormData();
    formData.append("entity.type", entity.type);
    formData.append("entity.id", entity.id);
    formData.append("description", "attachment description");
    formData.append("filename", fileInputElement.files[0].name);
    formData.append("content", fileInputElement.files[0]);

    return formData;
}