Sample code for 30+ languages & platforms
Visual FoxPro

Download Web Page to MHT and Extract Images (all in memory)

See more MHT / HTML Email Examples

Downloads a web page to an MHT archive (in memory) and then extracts each image to a byte array in memory.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL lcUrl
LOCAL loMht
LOCAL lcMhtStr
LOCAL loEmail
LOCAL lnNumRelatedItems
LOCAL i
LOCAL loSbContentType
LOCAL loImageData

lnSuccess = 0

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

* Note: This URL exists at the time of writing and testing this example (on 12-June-2020)
* However, it will surely not continue to exist for very long.
* You should choose a different URL.  (Any web page with images will do.)
lcUrl = "https://www.fendi.com/it/abbigliamento-uomo/cravatta-fxc160a3nwf0qg2"

loMht = CreateObject('Chilkat.Mht')

* Downloads to an MHT string.
* MHT is just MIME, which is the same format as an email but with different semantics.
lcMhtStr = loMht.GetMHT(lcUrl)
IF (loMht.LastMethodSuccess = 0) THEN
    ? loMht.LastErrorText
    RELEASE loMht
    CANCEL
ENDIF

* We can still treat the MHT MIME as an email and iterate over the "related items".
loEmail = CreateObject('Chilkat.Email')
lnSuccess = loEmail.SetFromMimeText(lcMhtStr)
IF (lnSuccess = 0) THEN
    ? loEmail.LastErrorText
    RELEASE loMht
    RELEASE loEmail
    CANCEL
ENDIF

lnNumRelatedItems = loEmail.NumRelatedItems
i = 0
loSbContentType = CreateObject('Chilkat.StringBuilder')
DO WHILE i < lnNumRelatedItems
    loSbContentType.SetString(loEmail.GetRelatedContentType(i))
    ? "Content-Type: " + loSbContentType.GetAsString()

    IF (loSbContentType.StartsWith("image/",0) = 1) THEN
        * We have an image.
        * Get the image data.
        loImageData = loEmail.GetRelatedData(i)

        * Do what you need with the image data..
    ENDIF

    i = i + 1
ENDDO

RELEASE loMht
RELEASE loEmail
RELEASE loSbContentType