That URL should look like this - http://example.com/civicrm/contact/imagefile?photo=mbd_logo_01cf3f5560578c6554b9ba009f6b42b7.png rather than this - http://example.com/sites/example.com/files/example.com/civicrm/contact/imagefile%3Fphoto%3Dmbd_logo_01cf3f5560578c6554b9ba009f6b42b7.png The `civicrm/contact/imagefile` handler permits CiviCRM to provide its permissions checks on whether the image in question should be served up. It looks like the URLs you're getting from Views are confused - possibly by CiviCRM configuration, or by an issue with the views implementation as it currently stands. You won't be able to test this on the CiviCRM demo site since you can't edit Views there, so I'd recommend searching for this on https://issues.civicrm.org and reporting it as an issue if there isn't one there already. ---- Serving images from CiviCRM file fields also incurs a substantial performance kick; I recommend not using CiviCRM imagefile fields if you are serving images to the public. You're far better off serving the file directly with no PHP at all OR putting ImageCache + [ImageCache External](https://www.drupal.org/project/imagecache_external) in front of it. Initialising CiviCRM for each image request adds some real delay to the process. See [these notes](https://gist.github.com/xurizaemon/795696d1e8b25b8b9130) and [this forum thread](http://forum.civicrm.org/index.php/topic,34929.msg151830.html#msg151830) for some notes / performance metrics based on current CiviCRM.org use of the imagefile handler.