upload using component