You can use the regular OOB Document upload control which binds to a DocumentInfo object, from this bound object you can get the content of the uploaded document as follows
Using Content Integration Pallete Item retrieve the contentStream by passing in the documentid which is available in the DocumentInfo Object
tw.local.BPMDocument[0].docId
The content stream can be processed as follows
var byteValue = Packages.java.lang.String(tw.local.contentStream.content).getBytes();
we need to base64 decode the content
var content = Packages.org.apache.commons.codec.binary.Base64.decodeBase64(byteValue);
tw.local.csvcontent = new java.lang.String(content, 'UTF-8');
you can try other encodings like UTF-16 or UTF32 also if the ccontent is not readable
after that you can split the csvcontent into a array of lines
var csvlines = tw.local.csvcontent.split("\n");
you can further split the individual lines based on a delimiter and then process them