problem with templates in custom module
Drupal won't look for the template in a theme path unless


You've added this code to a theme instead of a module or
You've put your module in the theme folder instead of sites/all/modules, and then perhaps moved it once installed (less likely I think).


If you've done either of these I'd advise fixing that problem and putting the code/module where it's supposed to go.

If you're too invested at this point, though, you can use the path argument to hook_theme() to provide a static path to your theme's implementation folder:

'upload_page' =&gt; array(
  'template' =&gt; 'templates/upload_page',
  'arguments' =&gt; array(
    'uploadurl' =&gt; NULL,
    'options' =&gt; NULL,
    'title' =&gt; NULL,
    'user' =&gt; NULL
  ),
  'path' =&gt; drupal_get_path('module', 'test')
)


The docs I've linked to are for Drupal 6 as I assume from your code that's what you're using; if you're using Drupal 7, the arguments property should be changed to variables.