A VisualForce page can only be added to an object's Page Layout if it declares the standardController attribute and its type must match.
<apex:page standardController="MyObject__c>
<c:fileUpload....
</apex:page>
I don't think there's any workaround for this
The other alternative is to declare a new Home Page Component -- it would appear on every page, but you can put an VF page in an IFRAME in the component and from within the VF Controller, you can do some clever discovery using the Referer header to figure out what type of object you're looking at. (using the id parameter and getGlobalDescribe to wander through to figure out the object type you're looking at based on the key prefix)
<?xml version="1.0" encoding="UTF-8"?>
<HomePageComponent xmlns="http://soap.sforce.com/2006/04/metadata">
<body><iframe style="display: inline;" id="wiFrame" marginheight="0" border="0" src="/apex/c__BobHome" allowtransparency="" name="wiFrame" marginwidth="0" width="100%" frameborder="0" height="250"></iframe></body>
<pageComponentType>htmlArea</pageComponentType>
<width>narrow</width>
</HomePageComponent>