Sample code for 30+ languages & platforms
PowerBuilder

WordPress Media Upload

See more WordPress Examples

Demonstrates how to upload a media file to WordPress.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
long li_Success
oleobject loo_Http
oleobject loo_Req
oleobject loo_Resp
oleobject loo_JsonResponse
oleobject loo_Date_gmt
string ls_Href
long li_Embeddable
string ls_Name
long li_Templated
long li_Id
string ls_Date
string ls_GuidRendered
string ls_GuidRaw
string ls_Modified
string ls_Modified_gmt
string ls_Slug
string ls_Status
string ls_V_type
string ls_Link
string ls_TitleRaw
string ls_TitleRendered
long li_Author
string ls_Comment_status
string ls_Ping_status
string ls_Template
string ls_Permalink_template
string ls_Generated_slug
string ls_DescriptionRaw
string ls_DescriptionRendered
string ls_CaptionRaw
string ls_CaptionRendered
string ls_Alt_text
string ls_Media_type
string ls_Mime_type
long li_Media_detailsWidth
long li_Media_detailsHeight
string ls_Media_detailsFile
string ls_Media_detailsSizesWoocommerce_gallery_thumbnailFile
long li_Media_detailsSizesWoocommerce_gallery_thumbnailWidth
long li_Media_detailsSizesWoocommerce_gallery_thumbnailHeight
string ls_Media_detailsSizesWoocommerce_gallery_thumbnailMime_type
string ls_Media_detailsSizesWoocommerce_gallery_thumbnailSource_url
string ls_Media_detailsSizesShop_thumbnailFile
long li_Media_detailsSizesShop_thumbnailWidth
long li_Media_detailsSizesShop_thumbnailHeight
string ls_Media_detailsSizesShop_thumbnailMime_type
string ls_Media_detailsSizesShop_thumbnailSource_url
string ls_Media_detailsSizesFullFile
long li_Media_detailsSizesFullWidth
long li_Media_detailsSizesFullHeight
string ls_Media_detailsSizesFullMime_type
string ls_Media_detailsSizesFullSource_url
string ls_Media_detailsImage_metaAperture
string ls_Media_detailsImage_metaCredit
string ls_Media_detailsImage_metaCamera
string ls_Media_detailsImage_metaCaption
string ls_Media_detailsImage_metaCreated_timestamp
string ls_Media_detailsImage_metaCopyright
string ls_Media_detailsImage_metaFocal_length
string ls_Media_detailsImage_metaIso
string ls_Media_detailsImage_metaShutter_speed
string ls_Media_detailsImage_metaTitle
string ls_Media_detailsImage_metaOrientation
string ls_Post
string ls_Source_url
long i
long li_Count_i

li_Success = 0

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

loo_Http = create oleobject
li_rc = loo_Http.ConnectToNewObject("Chilkat.Http")
if li_rc < 0 then
    destroy loo_Http
    MessageBox("Error","Connecting to COM object failed")
    return
end if

//  This example will use WordPress username / Application password authentication using the "Applications Password" plugin.
//  See https://wordpress.org/plugins/application-passwords/

//  Use your WordPress login, such as "admin", not the application name.
loo_Http.Login = "wp_username"
//  Use the application password, such as "Nths RwVH eDJ4 weNZ orMN jabq"
loo_Http.Password = "app_password"
loo_Http.BasicAuth = 1

loo_Req = create oleobject
li_rc = loo_Req.ConnectToNewObject("Chilkat.HttpRequest")

loo_Req.HttpVerb = "POST"

//  Use the Content-Type that corresponds to the type of file you are uploading.

//  WordPress supports uploading the following file types:

//  Images
//  
//      .jpg  (image/jpg)
//      .jpeg  (image/jpeg)
//      .png  (image/png)
//      .gif  (image/gif)
//      .ico (image/x-icon)
//  
//  Documents
//  
//      .pdf (applicatin/pdf)
//      .doc, .docx (application/msword)
//      .ppt, .pptx, .pps, .ppsx (application/mspowerpoint)
//      .odt 
//      .xls, .xlsx (application/msexcel)
//      .psd (??? image/vnd.adobe.photoshop,application/x-photoshop,application/photoshop,application/psd,image/psd)
//  
//  Audio
//  
//      .mp3 (audio/mpeg)
//      .m4a
//      .ogg
//      .wav (audio/wav)
//  
//  Video
//  
//      .mp4, .m4v (video/mp4)
//      .mov (video/quicktime)
//      .wmv (video/x-ms-wmv)
//      .avi (video/avi)
//      .mpg (video/mpeg)
//      .ogv 
//      .3gp 
//      .3g2 

loo_Req.ContentType = "image/jpg"
loo_Req.Path = "/wp-json/wp/v2/media"

li_Success = loo_Req.LoadBodyFromFile("qa_data/jpg/starfish.jpg")
if li_Success = 0 then
    Write-Debug loo_Req.LastErrorText
    destroy loo_Http
    destroy loo_Req
    return
end if

loo_Req.AddHeader("Content-Disposition","attachment; filename=starfish.jpg")

loo_Req.AddHeader("Expect","100-continue")

loo_Resp = create oleobject
li_rc = loo_Resp.ConnectToNewObject("Chilkat.HttpResponse")

li_Success = loo_Http.HttpSReq("www.yourserver.com",443,1,loo_Req,loo_Resp)
if li_Success = 0 then
    Write-Debug loo_Http.LastErrorText
    destroy loo_Http
    destroy loo_Req
    destroy loo_Resp
    return
end if

Write-Debug "HTTP response status: " + string(loo_Resp.StatusCode)

loo_JsonResponse = create oleobject
li_rc = loo_JsonResponse.ConnectToNewObject("Chilkat.JsonObject")

loo_JsonResponse.Load(loo_Resp.BodyStr)

loo_JsonResponse.EmitCompact = 0
Write-Debug loo_JsonResponse.Emit()

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

//  {
//    "id": 1915,
//    "date": "2021-01-19T18:25:01",
//    "date_gmt": "2021-01-20T01:25:01",
//    "guid": {
//      "rendered": "http:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish.jpg",
//      "raw": "http:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish.jpg"
//    },
//    "modified": "2021-01-19T18:25:01",
//    "modified_gmt": "2021-01-20T01:25:01",
//    "slug": "starfish",
//    "status": "inherit",
//    "type": "attachment",
//    "link": "https:\/\/cknotes.com\/starfish\/",
//    "title": {
//      "raw": "starfish",
//      "rendered": "starfish"
//    },
//    "author": 1,
//    "comment_status": "closed",
//    "ping_status": "closed",
//    "template": "",
//    "meta": [
//    ],
//    "permalink_template": "https:\/\/cknotes.com\/?attachment_id=1915",
//    "generated_slug": "starfish",
//    "description": {
//      "raw": "",
//      "rendered": "<p class=\"attachment\"><a href='https:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish.jpg'><img width=\"120\" height=\"120\" src=\"https:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish.jpg\" class=\"attachment-medium size-medium\" alt=\"\" loading=\"lazy\" srcset=\"http:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish.jpg 120w, http:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish-100x100.jpg 100w\" sizes=\"(max-width: 120px) 100vw, 120px\" \/><\/a><\/p>\n"
//    },
//    "caption": {
//      "raw": "",
//      "rendered": ""
//    },
//    "alt_text": "",
//    "media_type": "image",
//    "mime_type": "image\/jpeg",
//    "media_details": {
//      "width": 120,
//      "height": 120,
//      "file": "2021\/01\/starfish.jpg",
//      "sizes": {
//        "woocommerce_gallery_thumbnail": {
//          "file": "starfish-100x100.jpg",
//          "width": 100,
//          "height": 100,
//          "mime_type": "image\/jpeg",
//          "source_url": "https:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish-100x100.jpg"
//        },
//        "shop_thumbnail": {
//          "file": "starfish-100x100.jpg",
//          "width": 100,
//          "height": 100,
//          "mime_type": "image\/jpeg",
//          "source_url": "https:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish-100x100.jpg"
//        },
//        "full": {
//          "file": "starfish.jpg",
//          "width": 120,
//          "height": 120,
//          "mime_type": "image\/jpeg",
//          "source_url": "https:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish.jpg"
//        }
//      },
//      "image_meta": {
//        "aperture": "0",
//        "credit": "",
//        "camera": "",
//        "caption": "",
//        "created_timestamp": "0",
//        "copyright": "",
//        "focal_length": "0",
//        "iso": "0",
//        "shutter_speed": "0",
//        "title": "",
//        "orientation": "0",
//        "keywords": [
//        ]
//      }
//    },
//    "post": null,
//    "source_url": "https:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish.jpg",
//    "missing_image_sizes": [
//    ],
//    "_links": {
//      "self": [
//        {
//          "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/media\/1915"
//        }
//      ],
//      "collection": [
//        {
//          "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/media"
//        }
//      ],
//      "about": [
//        {
//          "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/types\/attachment"
//        }
//      ],
//      "author": [
//        {
//          "embeddable": true,
//          "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/users\/1"
//        }
//      ],
//      "replies": [
//        {
//          "embeddable": true,
//          "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/comments?post=1915"
//        }
//      ],
//      "wp:action-unfiltered-html": [
//        {
//          "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/media\/1915"
//        }
//      ],
//      "wp:action-assign-author": [
//        {
//          "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/media\/1915"
//        }
//      ],
//      "curies": [
//        {
//          "name": "wp",
//          "href": "https:\/\/api.w.org\/{rel}",
//          "templated": true
//        }
//      ]
//    }
//  }

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

loo_Date_gmt = create oleobject
li_rc = loo_Date_gmt.ConnectToNewObject("Chilkat.DtObj")

li_Id = loo_JsonResponse.IntOf("id")
ls_Date = loo_JsonResponse.StringOf("date")
loo_JsonResponse.DtOf("date_gmt",0,loo_Date_gmt)
ls_GuidRendered = loo_JsonResponse.StringOf("guid.rendered")
ls_GuidRaw = loo_JsonResponse.StringOf("guid.raw")
ls_Modified = loo_JsonResponse.StringOf("modified")
ls_Modified_gmt = loo_JsonResponse.StringOf("modified_gmt")
ls_Slug = loo_JsonResponse.StringOf("slug")
ls_Status = loo_JsonResponse.StringOf("status")
ls_V_type = loo_JsonResponse.StringOf("type")
ls_Link = loo_JsonResponse.StringOf("link")
ls_TitleRaw = loo_JsonResponse.StringOf("title.raw")
ls_TitleRendered = loo_JsonResponse.StringOf("title.rendered")
li_Author = loo_JsonResponse.IntOf("author")
ls_Comment_status = loo_JsonResponse.StringOf("comment_status")
ls_Ping_status = loo_JsonResponse.StringOf("ping_status")
ls_Template = loo_JsonResponse.StringOf("template")
ls_Permalink_template = loo_JsonResponse.StringOf("permalink_template")
ls_Generated_slug = loo_JsonResponse.StringOf("generated_slug")
ls_DescriptionRaw = loo_JsonResponse.StringOf("description.raw")
ls_DescriptionRendered = loo_JsonResponse.StringOf("description.rendered")
ls_CaptionRaw = loo_JsonResponse.StringOf("caption.raw")
ls_CaptionRendered = loo_JsonResponse.StringOf("caption.rendered")
ls_Alt_text = loo_JsonResponse.StringOf("alt_text")
ls_Media_type = loo_JsonResponse.StringOf("media_type")
ls_Mime_type = loo_JsonResponse.StringOf("mime_type")
li_Media_detailsWidth = loo_JsonResponse.IntOf("media_details.width")
li_Media_detailsHeight = loo_JsonResponse.IntOf("media_details.height")
ls_Media_detailsFile = loo_JsonResponse.StringOf("media_details.file")
ls_Media_detailsSizesWoocommerce_gallery_thumbnailFile = loo_JsonResponse.StringOf("media_details.sizes.woocommerce_gallery_thumbnail.file")
li_Media_detailsSizesWoocommerce_gallery_thumbnailWidth = loo_JsonResponse.IntOf("media_details.sizes.woocommerce_gallery_thumbnail.width")
li_Media_detailsSizesWoocommerce_gallery_thumbnailHeight = loo_JsonResponse.IntOf("media_details.sizes.woocommerce_gallery_thumbnail.height")
ls_Media_detailsSizesWoocommerce_gallery_thumbnailMime_type = loo_JsonResponse.StringOf("media_details.sizes.woocommerce_gallery_thumbnail.mime_type")
ls_Media_detailsSizesWoocommerce_gallery_thumbnailSource_url = loo_JsonResponse.StringOf("media_details.sizes.woocommerce_gallery_thumbnail.source_url")
ls_Media_detailsSizesShop_thumbnailFile = loo_JsonResponse.StringOf("media_details.sizes.shop_thumbnail.file")
li_Media_detailsSizesShop_thumbnailWidth = loo_JsonResponse.IntOf("media_details.sizes.shop_thumbnail.width")
li_Media_detailsSizesShop_thumbnailHeight = loo_JsonResponse.IntOf("media_details.sizes.shop_thumbnail.height")
ls_Media_detailsSizesShop_thumbnailMime_type = loo_JsonResponse.StringOf("media_details.sizes.shop_thumbnail.mime_type")
ls_Media_detailsSizesShop_thumbnailSource_url = loo_JsonResponse.StringOf("media_details.sizes.shop_thumbnail.source_url")
ls_Media_detailsSizesFullFile = loo_JsonResponse.StringOf("media_details.sizes.full.file")
li_Media_detailsSizesFullWidth = loo_JsonResponse.IntOf("media_details.sizes.full.width")
li_Media_detailsSizesFullHeight = loo_JsonResponse.IntOf("media_details.sizes.full.height")
ls_Media_detailsSizesFullMime_type = loo_JsonResponse.StringOf("media_details.sizes.full.mime_type")
ls_Media_detailsSizesFullSource_url = loo_JsonResponse.StringOf("media_details.sizes.full.source_url")
ls_Media_detailsImage_metaAperture = loo_JsonResponse.StringOf("media_details.image_meta.aperture")
ls_Media_detailsImage_metaCredit = loo_JsonResponse.StringOf("media_details.image_meta.credit")
ls_Media_detailsImage_metaCamera = loo_JsonResponse.StringOf("media_details.image_meta.camera")
ls_Media_detailsImage_metaCaption = loo_JsonResponse.StringOf("media_details.image_meta.caption")
ls_Media_detailsImage_metaCreated_timestamp = loo_JsonResponse.StringOf("media_details.image_meta.created_timestamp")
ls_Media_detailsImage_metaCopyright = loo_JsonResponse.StringOf("media_details.image_meta.copyright")
ls_Media_detailsImage_metaFocal_length = loo_JsonResponse.StringOf("media_details.image_meta.focal_length")
ls_Media_detailsImage_metaIso = loo_JsonResponse.StringOf("media_details.image_meta.iso")
ls_Media_detailsImage_metaShutter_speed = loo_JsonResponse.StringOf("media_details.image_meta.shutter_speed")
ls_Media_detailsImage_metaTitle = loo_JsonResponse.StringOf("media_details.image_meta.title")
ls_Media_detailsImage_metaOrientation = loo_JsonResponse.StringOf("media_details.image_meta.orientation")
ls_Post = loo_JsonResponse.StringOf("post")
ls_Source_url = loo_JsonResponse.StringOf("source_url")
i = 0
li_Count_i = loo_JsonResponse.SizeOfArray("meta")
do while i < li_Count_i
    loo_JsonResponse.I = i
    i = i + 1
loop
i = 0
li_Count_i = loo_JsonResponse.SizeOfArray("media_details.image_meta.keywords")
do while i < li_Count_i
    loo_JsonResponse.I = i
    i = i + 1
loop
i = 0
li_Count_i = loo_JsonResponse.SizeOfArray("missing_image_sizes")
do while i < li_Count_i
    loo_JsonResponse.I = i
    i = i + 1
loop
i = 0
li_Count_i = loo_JsonResponse.SizeOfArray("_links.self")
do while i < li_Count_i
    loo_JsonResponse.I = i
    ls_Href = loo_JsonResponse.StringOf("_links.self[i].href")
    i = i + 1
loop
i = 0
li_Count_i = loo_JsonResponse.SizeOfArray("_links.collection")
do while i < li_Count_i
    loo_JsonResponse.I = i
    ls_Href = loo_JsonResponse.StringOf("_links.collection[i].href")
    i = i + 1
loop
i = 0
li_Count_i = loo_JsonResponse.SizeOfArray("_links.about")
do while i < li_Count_i
    loo_JsonResponse.I = i
    ls_Href = loo_JsonResponse.StringOf("_links.about[i].href")
    i = i + 1
loop
i = 0
li_Count_i = loo_JsonResponse.SizeOfArray("_links.author")
do while i < li_Count_i
    loo_JsonResponse.I = i
    li_Embeddable = loo_JsonResponse.BoolOf("_links.author[i].embeddable")
    ls_Href = loo_JsonResponse.StringOf("_links.author[i].href")
    i = i + 1
loop
i = 0
li_Count_i = loo_JsonResponse.SizeOfArray("_links.replies")
do while i < li_Count_i
    loo_JsonResponse.I = i
    li_Embeddable = loo_JsonResponse.BoolOf("_links.replies[i].embeddable")
    ls_Href = loo_JsonResponse.StringOf("_links.replies[i].href")
    i = i + 1
loop
i = 0
li_Count_i = loo_JsonResponse.SizeOfArray("_links.wp:action-unfiltered-html")
do while i < li_Count_i
    loo_JsonResponse.I = i
    ls_Href = loo_JsonResponse.StringOf("_links.wp:action-unfiltered-html[i].href")
    i = i + 1
loop
i = 0
li_Count_i = loo_JsonResponse.SizeOfArray("_links.wp:action-assign-author")
do while i < li_Count_i
    loo_JsonResponse.I = i
    ls_Href = loo_JsonResponse.StringOf("_links.wp:action-assign-author[i].href")
    i = i + 1
loop
i = 0
li_Count_i = loo_JsonResponse.SizeOfArray("_links.curies")
do while i < li_Count_i
    loo_JsonResponse.I = i
    ls_Name = loo_JsonResponse.StringOf("_links.curies[i].name")
    ls_Href = loo_JsonResponse.StringOf("_links.curies[i].href")
    li_Templated = loo_JsonResponse.BoolOf("_links.curies[i].templated")
    i = i + 1
loop


destroy loo_Http
destroy loo_Req
destroy loo_Resp
destroy loo_JsonResponse
destroy loo_Date_gmt