The Block Factory can help you create simple blocks, but for more complicated blocks like the one you're describing, you'll need to hand-craft the block definition. Start with the documentation on
block definitions. We don't provide a field that handles file upload, so you'll also need to
create a custom field. And while we do support dynamic dropdown options, creating dropdown fields that are dependent on each other is a bit tricky and has a lot of edge cases to consider. You might want to check out the
dependent-dropdown plugin we provide, either to use as-is or just to learn about the kind of edge cases you need to consider in this kind of block design.
If you have more specific questions after reading the docs and starting your implementation, please let us know! Good luck,