Sample code for 30+ languages & platforms
Xbase++

Lightspeed - Upload an Image

See more Lightspeed Examples

Create (uploads) a new product image.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oHttp
LOCAL oBdImage
LOCAL oJson
LOCAL oResp
LOCAL oSbResponseBody
LOCAL oJResp
LOCAL nRespStatusCode
LOCAL nProductImageId
LOCAL nProductImageSortOrder
LOCAL cProductImageCreatedAt
LOCAL cProductImageUpdatedAt
LOCAL cProductImageExtension
LOCAL nProductImageSize
LOCAL cProductImageTitle
LOCAL cProductImageThumb
LOCAL cProductImageSrc

nSuccess := 0

//  This example assumes the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

oHttp := CreateObject("Chilkat.Http")

//  Implements the following CURL command:

//  curl   -u API_KEY:API_SECRET \
//      -H "Content-Type: application/json" \
//      -X POST \
//      -d '{
//    "productImage": {
//      "attachment": "base64-encoded-contents",
//      "filename": "the-filename-with-extension-goes-here.jpg"
//    }
//  }' \
//  "https://api.webshopapp.com/en/products/product_id/images.json"

//  Use the following online tool to generate HTTP code from a CURL command
//  Convert a cURL Command to HTTP Source Code

oHttp:Login := "API_KEY"
oHttp:Password := "API_SECRET"

//  Use this online tool to generate code from sample JSON:
//  Generate Code to Create JSON

//  The following JSON is sent in the request body.

//  {
//    "productImage": {
//      "attachment": "base64-encoded-contents",
//      "filename": "the-filename-with-extension-goes-here.jpg"
//    }
//  }

oBdImage := CreateObject("Chilkat.BinData")
nSuccess := oBdImage:LoadFile("qa_data/jpg/starfish.jpg")
IF (nSuccess == 0)
    ? "Failed to load image file."
    oHttp:destroy()
    oBdImage:destroy()
    RETURN
ENDIF

oJson := CreateObject("Chilkat.JsonObject")
oJson:UpdateString("productImage.attachment", oBdImage:GetEncoded("base64"))
oJson:UpdateString("productImage.filename", "starfish.jpg")

oHttp:SetRequestHeader("Content-Type", "application/json")

//  The product ID in the URL is "112265200".
oResp := CreateObject("Chilkat.HttpResponse")
nSuccess := oHttp:HttpJson("POST", "https://api.webshopapp.com/en/products/112265200/images.json", oJson, "application/json", oResp)
IF (nSuccess == 0)
    ? oHttp:LastErrorText
    oHttp:destroy()
    oBdImage:destroy()
    oJson:destroy()
    oResp:destroy()
    RETURN
ENDIF

oSbResponseBody := CreateObject("Chilkat.StringBuilder")
oResp:GetBodySb(oSbResponseBody)
oJResp := CreateObject("Chilkat.JsonObject")
oJResp:LoadSb(oSbResponseBody)
oJResp:EmitCompact := 0

? "Response Body:"
? oJResp:Emit()

nRespStatusCode := oResp:StatusCode
? "Response Status Code = " + Str(nRespStatusCode)
IF (nRespStatusCode >= 400)
    ? "Response Header:"
    ? oResp:Header
    ? "Failed."
    oHttp:destroy()
    oBdImage:destroy()
    oJson:destroy()
    oResp:destroy()
    oSbResponseBody:destroy()
    oJResp:destroy()
    RETURN
ENDIF

//  Sample JSON response:
//  (Sample code for parsing the JSON response is shown below)

//  {
//    "productImage": {
//      "id": 13362569,
//      "sortOrder": 3,
//      "createdAt": "2019-06-06T14:52:07+00:00",
//      "updatedAt": "2019-06-06T14:52:07+00:00",
//      "extension": "png",
//      "size": 8016,
//      "title": "logo",
//      "thumb": "https://cdn.shoplightspeed.com/shops/000001/files/14271562/50x50x2/logo.png",
//      "src": "https://cdn.shoplightspeed.com/shops/000001/files/14271562/logo.png"
//    }
//  }

//  Sample code for parsing the JSON response...
//  Use the following online tool to generate parsing code from sample JSON:
//  Generate Parsing Code from JSON

nProductImageId := oJResp:IntOf("productImage.id")
nProductImageSortOrder := oJResp:IntOf("productImage.sortOrder")
cProductImageCreatedAt := oJResp:StringOf("productImage.createdAt")
cProductImageUpdatedAt := oJResp:StringOf("productImage.updatedAt")
cProductImageExtension := oJResp:StringOf("productImage.extension")
nProductImageSize := oJResp:IntOf("productImage.size")
cProductImageTitle := oJResp:StringOf("productImage.title")
cProductImageThumb := oJResp:StringOf("productImage.thumb")
cProductImageSrc := oJResp:StringOf("productImage.src")

oHttp:destroy()
oBdImage:destroy()
oJson:destroy()
oResp:destroy()
oSbResponseBody:destroy()
oJResp:destroy()