There is a way, at least if you are using the webform integration based on form processors and CMRF (and not the "built in CiviCRM <-> Webform" integration - not sure if it works there).
- Create a form processor input oft the type "file"
- Create a form processor action "Upload file to a custom field"
This allows the form processor to "fetch" any file if provided with an url and store it in CiviCRM. The problem is that drupal stores files in the private file system so the form procressor is not allowed to fetch the file by default.
You can work around that problem by submitting an url that contains an authorization token from Drupal to the form processor:
- Create a corresponding file field in Drupal Webforms
- In Drupal Webform configuration, navigate to the file field's settings for the submission display
- in the dropdown, choose "custom"
- in "Item format custom HTML" enter:
<a href="{{ item.url }}?token={{ token }}" target="_blank">{{ item.name }}</a>
This should pass an url to the form processor which allows it to "fetch" the file. I am not 100% sure if some global webform-settings or Drupal permissions need to be adapted as well but I think not.
All of this can be a bit hard to set up and debug but it should work. Make sure you have the latest releases of all components (Formprocessor, CMRF, Webform...).