Look again at MIME::Lite. You specify what the file is to send as an attachment. I would suggest giving it a try and reporting back the results :) But, you found the right tool to do the job. As for the uploading part, it looks like a job for CGI.pm. I believe there are examples for file uploading in the CGI.pm docs.
Cheers,
KM