The attribute value points to a member of the process data class that must have the type org.primefaces.model.StreamedContent. This object will be the one downloaded. In the code snippet below you can see how you can setup this object in the logic of the Html User Dialog.

We use DefaultStreamedContent to set in the process data that then will be used by the p:fileDownload. Note that the FileInputStream is not closed. Doing that would automatically abort the download. To avoid memory leaks, the DefaultStreamedContent will call the close method.