Yes, you can use volley for uploading. Volley is just a library based around services as it is, so no need to build your own service code. You could use FTP uploading as an alternative if it suits your context, but using HTTP based services is a good bet.
Take a look at Async Http or Android FTP Library in case those are easier to use or more suitable for your situation.
There is no need to run the volley code in its own service unless you are doing long running operations that needs to run independently of the activity. A service doesn't imply that it uses threads, so if volley is making use of threads your fine.