I highly recommend you to use Square's Tape while your uploading multiple files/images at once looking at the ease of use, efficiency,error handling, queuing system. If you are using only one file at time try to use any of multi-part file upload in any android Http clients
This is what [Square's Tape:][1]
[1]: http://square.github.io/tape/
Tape is a collection of queue-related classes for Android and Java by Square, Inc.
QueueFile is a lightning-fast, transactional, file-based FIFO. Addition and removal from an instance is an O(1) operation and is atomic. Writes are synchronous; data will be written to disk before an operation returns. The underlying file is structured to survive process and even system crashes and if an I/O exception is thrown during a mutating change, the change is aborted.
An ObjectQueue represents an ordering of arbitrary objects which can be backed either by the filesystem (via QueueFile) or in memory only.
TaskQueue is a special object queue which holds Tasks, objects which have a notion of being executed. Instances are managed by an external executor which prepares and executes enqueued tasks.
I highly recommend you to use Square's Tape while your uploading *multiple* files/images at once looking at the ease of use, efficiency,error handling, queuing system. If you are using only one file at time try to use any of [multi-part file upload][1] in any [android Http clients][2]
This is what [**Square's Tape**][3]:
> Tape is a collection of queue-related classes for Android and Java by
> Square, Inc.
>
> QueueFile is a lightning-fast, transactional, file-based FIFO.
> Addition and removal from an instance is an O(1) operation and is
> atomic. Writes are synchronous; data will be written to disk before an
> operation returns. The underlying file is structured to survive
> process and even system crashes and if an I/O exception is thrown
> during a mutating change, the change is aborted.
>
> An ObjectQueue represents an ordering of arbitrary objects which can
> be backed either by the filesystem (via QueueFile) or in memory only.
>
> TaskQueue is a special object queue which holds Tasks, objects which
> have a notion of being executed. Instances are managed by an external
> executor which prepares and executes enqueued tasks.
[1]: http://bit.ly/1j1Jdop
[2]: http://android-developers.blogspot.in/2011/09/androids-http-clients.html
[3]: http://square.github.io/tape/