Support multiple upload

- only supports files under the same parent directory
- support upload via drag/drop and QFileDialog
`use_upload` is not needed here.