add upload file progress support(untest completely)