Retrofit MySQL Multipart Images CRUD – UPLOAD DOWNLOAD UPDATE DELETE Full – Camposha

INSANE PREMIUM COURSES OFFER. Access more than 26000 courses for FREE for 2 Months at  Skillshare, an online course platform. No hidden contract.  REGISTER NOW.

Press ESC to close



$9.99 $4.99

Do you want to learn how to upload/download/update/delete images and text stored in mysql database? D you want to learn how to create a full android mysql retrofit application? Do you want to learn Retrofit Multipart Upload in the context of a full application? Well then this is the project for you.

The project is written in Java and utilizes Retrofit 2, the most popular third-party HTTP Client. Data will be stored in a server online or localhost. That data include both images and text. We upload them at a go via single HTTP request thus making the operation not only efficient but less likely to fail.


The images will actually be stored in a folder the server. Then the image paths alongside other properties are stored in MySQL. When we retrieve data via a HTTP GET or HTTP POST request we fetch the data text stored in the database. The images are then efficiently loaded using Picasso asynchronously and rendered alongside texts in our recyclerview.


We will provide two ways of updating data. First users can update both image and text in a single asynchronous call. With this the image is replaced in the server and the new image path is saved in the database. This method will automatically be used when user selects a new image using imagepicker.

However if user changes only text and doesn’t change the images, then instead of making a multipart request we will just make an ordinary request and update only text without the image. This makes our update efficient as there is no reason to re-upload the same image twice just because the user has changed the text.


You will also learn how to delete data from mysql database as well as images from our server using Retrofit. We will do both in a single request. First we delete the image from the server then it’s path as well as the whole row the user has requested to be deleted.

Deleting is simple as we only need to send the row id to be deleted.


You will also learn how to fetch data from MySQL database via Retrofit. We provide two methods for fetching. One using a HTTP GET request. This method when invoked will fetch everything in a single call.

Then the second using a HTTP POST request. This will allow us to fetch paginated data. By default in the app we use the second method to fetch paginated data as the user scrolls.


The app will contain several screens:

  1. Upload Activity – Activity used for uploading our data, both images and text. This same activity will also be used for updating existing data as well as deleting data. It’s probably the most important activity in the project.
  2. Listing Activity – This is our recycerview activity. It is used for rendering data. Both images and text are rendered nicley in a cardviews. At the top we have a carousel which slides through the fetched images automatically.
  3. Detail Activity – This, as the name suggests will render the details of a single Star object. We use CollapsingToolbarLayout with NestedScrollView containing a CardView with our details. There is also a menu item as well as a Floating Action Button that when clicked takes us to the Upload Activity for editing/deleting the selected Star object.
  4. Splash Activity – Just good old splash screen. Optional in this type of app.
  5. Dashboard Activity – This like the menu activity or the home activity. From it you can navigate to other parts of the application.
  6. About Us Activity – You can use this to show your contacts info etc.


Categories: , Tags: ,

 Custom Fonts

The application uses custom fonts using Calligraphy library. You can use any font you like. You just download the font from online, then add it in the assets folder, then specify the font in the App class and that’s it.

Image Slider

The application uses CarouselView to create an image slider with beautiful animations. The images can autoslide or be swiped. The images shown are those that have been downloaded alongside the data from our MySQL database.


The application includes the ability to paginate data. Only a limited amount of data is downloaded for every request. You can change the figure. Then as the user scrolls through the recyclerview the next page is downloaded using Load More technique. When there is no more data the user is notified.


The application includes a client side search filder capability. Users can rapidly search through the already downloaded data via SearchView. As the user searches the results are highlighted in our recyclerview.

Material Dialogs

We have beautiful dialogs to be used for showing info or warning to user or for choosing items. We make use of LovelyDialogs library.


In case of any problem, we are available to provide you with full support. Just contact us via the Contacts Form or through my email: [email protected]


First thanks very much for purchasing this project. Am available to assist you all through the way.

1. In you android studio import the project
2. Then sync to download dependencies.
3. Run.

When you run the project, we will use a demo mysql database we host online.

1. In XAMPP/WAMP server root directory create a folder named PHP.
2. Inside this PHP extract the file.
3. In the code go and comment this line:

R::setup( ‘mysql:host=localhost;dbname=projectsdb’, ‘demo’, ‘9AmaFn6jpmNe8DN6’ );

The above line is the user credentials for our online mysql database. We comment it if we want to use
localhost credentials.

Uncomment the following line:
R::setup( ‘mysql:host=localhost;dbname=projectsdb’, ‘root’, ” );

In the above line we are using the default root superuser.

4. That’s it.


You don’t have to create a database. We are using Redbean PHP which will automatically create for us
a database and a table based the data we are trying to save. However you have to attempt to save data
first. For example go to the CRUD page of the app then choose an image, fill all the fields and click
upload. ReadbeanPHP will create a database table based on those fields.

For queries contact me: [email protected]



  1. Connect to a wifi network.
  2. Type ipconfig in the cmd
  3. The IPv4 Addess will be listed. It is your ip address

Look at the image below:





You may also like…

Weekly Student ProjectsLet us inform you of our new projects,apps,tutorials, courses and updates directly into your email.

Every week we are creating new programming projects, tutorials, courses and udates and informing our subscribers. Subscribe we inform you also.