重构上传逻辑