add upload component