Hi all - I have a custom tool that can optionally take a file as input.  

Right now, users have to upload the file into their history, then select the file when running the tool.

Is there a way to let the user select a file local on their computer as input to the tool, then when run, the file is uploaded?

And (second question), how can I make this field optional, such that the user does not need to provide a file at all when running the tool?

Right now, my input field is:

<param name="factorSheet" type="data" label="Factor Sheet" help="Select a factor sheet (if any)." />