I copied your extension code and attached the DataExtension to my Page pagetype and it all seems to work. Note, I used the following front end template code from your example (your 2nd example does work as there is no object called "Image", you are already looping through Image objects with "ProductImages"):
<ul>
<% loop $ProductImages %>
<li>$SetWidth(100)</li>
<% end_loop %>
</ul>
Perhaps check to ensure in your code that there is nothing in your Product page type causing an issue or that the page in the site tree is indeed set to the page type that your DataExtension is applied to.
Only other thing I could think of is you might need to flush your template cache with a good old "?flush=1" added to the URL on the frontend of your site.
Posted to: Showing images from UploadField in custom template | Show Thread | Post Reply