Re: HOWTO: Attach images to a Forms 2.0 form post

SanfordWhiteman
Level 10 - Community Moderator
Not a question, but an answer!

In a couple of Community threads I've remarked that -- despite conventional wisdom -- it is possible to attach images to Marketo forms (both LP-hosted and embedded) and save the image data in your Marketo database.

To prove I wasn't blowing smoke, here's a demo.

This form populates the built-in MarketoSocialLinkedInProfileURL field with an image of the lead's choosing; you can use any text field you want. In the demo, the file size is limited to 64K: since the image is exported as a maximum 200 x 200 low-quality JPEG, that'll do fine, but the larger you set the MAX_WIDTH and MAX_HEIGHT, the larger the file will naturally be.

At this point in time I would recommend this technique only for obviously small (in dimensions) images such as avatars, small headshots, or logos... though I suppose if you know people will be uploading 2-color scans, for example, you could go bigger, at your own risk.   (If you've worked at all with web images, you know there is no hard-and-fast rule because I could make a "giant" 5000 x 5000 JPG that's only a couple K on disk -- the size on the wire depends on complexity and compressibility.)

I hope at least some of you are impressed so far! Here are the caveats/details:
  • Does not work in IE 8 or 9.  I'm sympathetic to people who have to support old browsers -- we still expect and support IE 8 for our web app -- but sometimes you have to build something cool, no matter what.  If you aren't comfortable pushing people to use IE 10+, Chrome, Safari, or Firefox, you will have to consider this technique a "progressive enhancement" and apply it appropriately (for example, let people use a default avatar if their browser doesn't support attaching an avatar to the form post).  You could get it working in old IE using Silverlight, Flash, or Java... writing that code is up to you. 🙂
  • The Marketo app will not display the image as an picture but rather as a URL -- technically, a data URI, which is just an agglomeration of bytes into something that looks like a URL  -- which you need to copy-paste into another browser tab to view. (You could build a bookmarklet to render it into the page, most likely, but I'll leave that up to you.)  
  • Aside from the default Marketo UI, all other ways of reading data from Marketo, including the Forms APIs and the REST/SOAP APIs, and even SFDC, are capable of displaying the picture in your browser.  You could, for example, create a VisualForce page that displays the image in SFDC, or read the field using REST and convert it to a standalone image to use anywhere you want.
  • The technical implementation is all there in the JavaScript, so how awesome or horrifiying it is probably depends on your love of code.
  • Hope you like it!
Tags (1)
26 REPLIES 26
Hana_AlBarazi
Level 2

Hi Sanford Whiteman, this is really cool! Thanks for sharing. I am running into some major confusion as to how I can render the URI into an image, though. When I copy and paste into another tab in my Chrome browser, it doesn't load appropriately. Perhaps I'm too new to these things to understand the alternate ways I can access the data that you described, and I'm wondering if you can you point me to a resource that gives a basic explanation of how to access it in those ways, step by step?

Thanks for your help!

SanfordWhiteman
Level 10 - Community Moderator

You'll have to tell me more (a lot more!) about how you're trying to use the URI.

Here's a field I just created on a lead using that form and embedded like so, directly into this Community post:

<img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAYABgDAREAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD86fgz8D/HXx617VfC/wAPIbK41XStIl1j7Nc3IgNzHHLFEY42YbPMLTLjeyrgHLDgEA5rxh4J8X/D7XZvDPjfw3qOh6pb8va31u0TlckB1yPmQ4OHXKnqCRQBi0AfZH/BLD/k4PxB/wBibd/+l1lQB9+/tC/8M+/8ILJ/w0V/wj39gfP5P9qf67zNvzfZdn7/AM3bn/UfPjOKAPxv+MP/AAqL/hOr3/hSP/CQ/wDCL/8ALH+3PL87zNzbvL2c+Vjbs3/Pj73NAFr4M/HDx38Bde1XxR8PJrK31XVdJl0f7Tc2wnNtHJLFKZI1Y7PMDQrjerLgnKnggA5rxh428XfEHXZvE3jfxJqOuapccPdX1w0rhckhFyflQZOFXCjoABQBi0Af/9k=" />

9k=

Hana_AlBarazi
Level 2

Hi Sanford - thanks for the quick response. I'm trying to set up a form on a Marketo landing page where people can upload a headshot that we will place on our website. I'm just having trouble accessing the actual image after successfully uploading it using the script you provided. The field is being loaded correctly (I think) with the URI (pasted below), but when I paste it into my Chrome and Safari browsers, I get an error message, "The webpage at, [URI LINK] might be temporarily down or it may have moved permanently to a new web address. ERR_INVALID_URL".

  1. <img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCADIAMgDASIAAhEBAxEB/8QAHQAAAAcBAQEAAAAAAAAAAAAAAAMEBQYHCAIBCf/EAEIQAAEDAwIEBAMGBAQFAwUAAAECAwQABREGIQcSMUETUWGBIjJxCBRCkaGxFWLB8CNy0eEWJDNSomOC8SU0Q5Ky/8QAGwEAAgMBAQEAAAAAAAAAAAAAAwUCBAYBAAf/xAAzEQABBAEDAwIEBQIHAAAAAAABAAIDEQQFEiETMUFRYQYicYEUMjORsSNCFTRScqHB4f/aAAwDAQACEQMRAD8ANQ3t0o5KcY2r0Jo5tvG5raALN914honejwjFepTyjPTFddsYrqkBa8CBneuu+EivQgk712EgV5T2gLgJPrXQRtXQP0pp1PqWBpa0PXa4H4WxhCO7i+yRUXyNiaXuPARGMMjg1vcpycfjxUeNIeS0gdVKOBSZnUumnkuhN/gHkWDy+MkkHOMY89+lZO17xLuWrpqnLjcFR4oVytx21EDrtmo5ab0+/JCOiWW1uuOJ7J23UenUUkfq7nOqNvCdDRdrQXv59AtdyuMGibOX0z0POkKUlKEo3UnOMg/nUZXx/wBFuuFEaDPbPksJP9RWZLnrebcJqo7TBKFFQS5zcoCR6n2/Omt+RPcdJQyxLSk9UKST7HB/WqJ1HJBsFXRpeLt5u1ruBxm0pNUlLjE1gK/FyBY8twk59sVMbbdrbd2BItc1qS2e6FZI9COoPoaxXbrm6rlSH3ITwG3iZSFAdwfL6HNSjT2tL3YphnNvOpdj/PyHlV18xsRnqFentYh1eVv6gsIEujRuH9M0tcu48VQ2wNtvSucbdahnD/iHC1fES0842mUgYUR8OT5EfhVjt37VNAFA9tqewTsyG7mFIJ8d8Dtrwi1Jz1otTfpShWMZrwpz1GKMq9JGpvHbNEqTS1SM7iiHEEZ2rhC52SNaBRKk+dLFJ3xRS0YqJFr3dIlt53pK80PKnBScZohxGRQiFFMkpkcpOKFLZDexoVFeUpbQAKPSnbJGK5SOXqOtGAEncVaRA1AAk12lIA32r3YDNDpXlNe/SvOtAHPQUYy2pawCM79vOu9uSuot0sxozkuQ4EtMoK1q8gKyxxu4lC+XBcdtwpYZTysNBWAkeZPmev8AoMVdPGrU5tFtVYoiySr/AKpBOVKwdgO4Gax7qRpFylrQy7ykrJy6ncE9T1/eszqWb1XbG9gtBpuJ0x1Hdym4akX955DI5k53Qg+vp/vU+020xIZDYbyzMODtnYJOBv8AU7f2GbQPCCdquYllrKgo/OgfL7GtSaK+zXMjRWlPcnKjBwd87f70r6ld08ige/mlmS7256NJU1AjguSFBOSnZKe5PoMdBjpnvTLLnFmR4CVoLaO7iQTjuo7YH0H61rrUH2fZcJas2/xAvIStIzgHbfHSu7F9kO3XFgSbmkjnThQUMY/v+tQMgRRiOJ4WVLVcrc8pLSJTZUcHCkYzv59R+dTaPbzKiiVGaUVIbAcbIyUjGNsbKGOvfGe9Svil9k+7aUWu8aVDkqK3lTjadlAentUE0Rf3LTczbLqtJa/6RUvIWyScELHUpOeuetdY4FRkifF+YJ2sDEyxzhPtb7iSysEhOVcoPTYdU75x+VaX0FqRjWVsU2SlFyjDK2ubPOnsQe4ONj6EHcGqtYsf3iMbtEbw9Gd8KQ3zhQII5gM9z1IPfc9eiuJJmaQfiatsRH3RKv8AEIJT4Ks9FduUnAV2GxHQZt4078Z4c1LczGZks91b7jZT8wrg5" /> 

I also tried to embed the photo below, but this is the icon I get, in the place of where the photo should be.

Also, here's my fiddle.

So perhaps it's my limited knowledge of what I'm actually doing that is preventing me from understanding what the problem is, but I thought I followed your instructions pretty closely.

Thanks for the guidance, it is much appreciated.

SanfordWhiteman
Level 10 - Community Moderator

If I paste that entire src (everything inside the quotes) in my browser(s) I see a 200x200 white JPEG, which I assume is what you uploaded.

pastedImage_0.png

There must be something else you're doing -- that is a valid data: url.

Hana_AlBarazi
Level 2

Hold on, I'm checking to see if it might be the image size that was too big...

Update: Didn't make a difference. Anyway, I'll keep noodling on it over the weekend.

SanfordWhiteman
Level 10 - Community Moderator

Make sure when you add the field the form that it's a Textarea with maxsize 32000.  It looks like you used a Text with maxsize 2000. That's causing truncation.

Hana_AlBarazi
Level 2

Thanks for the tip - I fixed it, but still no luck .

Here's the new URI:

  1. <img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCADIAMgDASIAAhEBAxEB/8QAHQAAAAcBAQEAAAAAAAAAAAAAAAMEBQYHCAIBCf/EAD4QAAEDAwIEBAQEBAUDBQEAAAECAwQABREGIQcSMUETUWGBIjJxkQgUobFCYsHwFRYj0eEkUpIzQ3Ki8bL/xAAbAQACAwEBAQAAAAAAAAAAAAADBQIEBgEAB//EADIRAAEEAQMDAwIFAgcAAAAAAAEAAgMRBAUSIRMxQSJRYQZxFCNCgZEVoTIzNLHR8PH/2gAMAwEAAhEDEQA/ADW0elHAdBXoSfKjm2+5ragLN91420T3o8N47V6lGBny612PLBzXlMC14EgHevfQCugjNdYCa8pBtLgI36mugnaugRjIFNOp9S2/S1odu1wUOVAIQjO7iuwFRfI2Ju9/ZEYx0jg1vdOTj0eKjx33UtIHVSjgUmZ1Lpp5LoF+gfAsEpDwJBzjGPPc7Vk7XvEu5avmqXcp5jxQrDcdsnHXb3qOWi9vvSAjolptby3U9k7bqP1H70kfq7nOpjeE6GjbW293PstdyuMGiLOXkz0vOqBUEoQjdQ6ZB9j9/Woyvj/ot5zkjQJ7Z8lhJ+24rMlz1vNuE5UZlglBUoJc5uUBI26n2+/0prffnuvK5GWJaEncoUkn2ODv9apO1HJBsOV0aXi7ebta7g8ZtKTSkOszWEkfN4YWn3Cdx9MVMrbdrbdmRItc1qQ2f+xWSPQjqD6GsU2+5uK5UB9yE8Bt4mUhQHcHy+hzUp09rS92KYZzbzgcjn4+Q4VjPmNiCeyvvViHV5GmpBaBLo0bh+WaK1y5jxCnbA229K5I2qGcP+IcLV8RLTzjaZaBhRB5cnyI/hVjG3Q9qmgChscbdqeQZEeQ3cwpDPA6B214XCk9aKUjalBArxSaMq1FI1N+9EqTjaly0DtSdxBHavUuJItAFEKSfrSxSd6KWjvUCF7uka2/SkjzW3SnBacUQ4jI6UIhRTLKZHKTQpZIb26UKivKUoQAN6OSjAyRigkcp3rsDmO9WkQN90AFHc12lIHpXoAAoV5TXvTpQ614COwoxltS1AYzv713xa6i3VMxozsuQ4EtMoK1nyArLHG7iV/jlwWw24Ussp5WGgSAkeZ9T1/qNqurjVqc2i2rsURRPP8A+qc/MrB2A7gfvWPNStIucpaGneUlZOXU7gnr3z96zWpZvVdsb2C0GnYnTHUd3Kbk6kX+Z8MyeZOd0I+vp/zU+022w+yGwj/RmHHTOAEnA38snbpTNoHhBN1XNSy0CQo/OgfL7EVqTRP4a5saKyp0pKUEKwrfO1KupSeRQPfyVmS7256NIU3AjAuPqCeYpwlKe5PoMHpjOM96ZZc7wZHgBbZbR3cSCcd1dNh6Ctdag/D7LhrObcFheeVad8Z2379q7sP4Q7dcWBJuaSnnThQUMY/v+tRdIEUYjiVlO1XK3vqS0iU3zHB5VIwDv59R9/rU3j2783GEqMyoqQ2A42oAqSMY2xspOOvfGe+1Svil+E+7aUWu8aVDkqKgEuNj5gP/AMqCaIv7lpuZtd1cSWdmipeQtkk4IWOpQc9c15jgVGSJ8f8AiCdrAzMsk7/ELW+tJaUCeXKuUH0HVO+cfatL6C1IxrK2KbJSi5RhlbWc86exB7g9QfQjqKq2PZDIjG7w28PRnfDkN8+cgjmAzjc9SDjfr16K4siZpGRE1bYiPyqVf6igSnwFE9FfyE4SrsNj2FW8ed2M/cEtzcZuQz5VvuNKR1FcE8tPBMTUFjY1NakkM" />
SanfordWhiteman
Level 10 - Community Moderator

Look for a new lead

    teknkl+test0001@email.invalid

This lead sent the following value for the field (sorry, it has to be this long!):

data:image/jpeg;base64,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

Which is this image:

pastedImage_0.jpg

Hana_AlBarazi
Level 2

Hi Sanford - cool experiment.

The URI in Marketo is:

  1. data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCADBAMgDAREAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD8+WQRExht2OhAPNfJ35j7ayp+6IyhicE+1C0CykIQw7AcYGBmnoTsR+2MnOfxqhDMbSeae5NhrjcRjHUdapOwhCOx9OaCbDAOOGGcfpVMlDsZG4ng1JVgIx+WKLhYf+NSUKT2yT9aAFPtQAn1z+dAAeDnHH86YB7/AM6QBQAKzZwP50aBdodznqMjpzSGgO7OQc56mjQT3DoOuTQAuOOnU9KAsJ0OCPzHWgGrDWGexHemmK9h0Qy6McgButD0KSuWV5Axxge9ZG4gG3BByP60wGsCBnPfBNCIGFAT6jvTTJYwgYAHr3qhCYIPGOPemJjdp9B6deadxNMTZ1KkY9KdyeXsJ8y9sn2oKHHIzkZ7ZpAKOnI5pAtrjsH0NK4CZLH7uB9adgFx2wRnH4UAIQByB04xQA31OaAAc/KfrimAHK4B4yMgY7UbgPU8AnHSkxrRXFVcg8AdaQ+W+oFduTg/THWjcTVgzzxxkUCuIOm7HJo8h3A8jB4HWhA3fQaXCgkY+lVYL2Lg+4Gw3T6YFYm4A8HP0wTQA0Ywcrj/AD1oFuIq7uF5zz6UCsMZSFyR39apCew1lYgjAx9RVIhxvqNZTzk8jpjmmiWrCRt84AHtzzRJaDjuI23GMY7/AFoQNroIFYjOF5/2hzTGot6ocituxlSP94UmHKyQL0GBn2NTcaQpUjvj8c0rjsIV/AimmIbt+YAnjGadxNXEOOcDOKBXtoIAc5zz2piGS53DaSBjFUttRN2FQZUjJPqM0mNaKw/bgfN0xipv2Ha4Ko7NTuHLccvy9AMjv2pD2EyD/ESR74oE2N25PHPpzTuCQPgKx64FC3FsW1xsG4dh2x2rF7nTHYMEfLtyCM/hTBroIcgAAE44HFBOw0jjLZGO+KdxWuM44OPpxTuS0M5IwWb8qoXkJj17elAmHyZzyPXijUnYcuc4IyMUmWkMcfMcd/aqi9CZJXEAOc5wPpQxEinqc89hUstMeNwHGOlSVZihQw2nP4etF7BYBBu+7x+HajmtuNx7DHTaoODx7VSdyXDS4ztyD+VMzGPwapAC/eye1ADgO4pDuBBHGRQFwD9v6UWC4hbPbg0WEBPTGf0pgJJwpoW4palomRVCqOFH51lZM3UnFWQhcnBC5I68YxRy2

And it does not render in Chrome or Safari:

How did you get the URI you sent?

SanfordWhiteman
Level 10 - Community Moderator

Can you point me to the form instead?

Sorry, I have a link to your form already. Let me submit an image, tell you what I see on the wire, and you tell me what you see in Marketo. This won't be for a few hours, though.

Hana_AlBarazi
Level 2

Actually, I uploaded my own headshot....

Carrie_Thomas1
Level 1

Can you upload other file types such as a word doc? 

SanfordWhiteman
Level 10 - Community Moderator

Sure, UploadCare supports all binary file types.

Anonymous
Not applicable

Hi Sanford,

I've been reading up on the form you created here MktoForms2 :: Uploadcare - I just wanted to confirm what is the field name of the hidden field you created in the JS and what other actions did you do on the marketo database side to populate the URL into the hidden field?

I've tried recreating the the form you created (same HTML and JS just switched over to the form reference to what my own form as well as using my uploadcare public key) I even named my string field RFPURL however it still does not populate a URL on marketo after submission.

Not sure what I'm doing wrong as my javascript skills are very beginner level.

Please let me know your thoughts, happy to provide more information if necessary

Thanks!

Rafael

SanfordWhiteman
Level 10 - Community Moderator

Hi Raf,

There's no other work done on the Marketo side, but you need to have the corresponding custom (string) field in Marketo of course.

You'd have to point me to your URL for me to troubleshoot further.

Anonymous
Not applicable

Hi Sanford,

Edit fiddle - JSFiddle

Please let me know your thoughts

Raf

SanfordWhiteman
Level 10 - Community Moderator

JavaScript is case-sensitive.

You have a hidden field that's been added to the form in Form Editor: rfpURL.

Then you're adding another field via the JS addHiddenFields method: RFPURL.

The latter field gets bound to the UploadCare widget, but there's no field of that name in your Marketo instance.

I would remove the hidden field from Form Editor. Then change the RFPURL to rfpURL:

form.addHiddenFields({

  rfpURL: ''

});

Anonymous
Not applicable

It works now, Thank you Sanford! Appreciate the assistance.

Raf

Anonymous
Not applicable

Amazing feature! Will it be possible to upload files such as pdf or docx some day?

Regards

SanfordWhiteman
Level 10 - Community Moderator

Amazing feature! Will it be possible to upload files such as pdf or docx some day?

Either one would work if they're small enough.  The irony (if you can call it that given the potential size of images in general) is that because of JPEG compression, outputting a compressed image with fixed dimensions is very likely to stay under the limit, whereas unless DOCX/PDF comes from a template with a set # of pages/fields it could get very huge, very quickly.

These days I am more likely to suggest Uploadcare as discussed and demoed here: Re: File Upload Field