Yes, you can copy the file directly to the input cache using the file system and then publish it in a stream item using this kind of parameter form:
{"for":"stream1","keys":["key1","key2"],"data"{"cache":"Ev1HQV1aUCY"}}
See also the txouttobinarycache command in the latest 2.0 beta which allows large pieces of data from the blockchain to be dumped into the binary cache. Once there they can also be read via the file system.