3

I would like to upload image to mysql database from android app using RESTful service. Is their any service side and android side tutorial.Please kindly help in providing RESTful and android samples

Thank in advance

nagagani
  • 37
  • 5

2 Answers2

0

This Tutorial will help with uploading image files and

This tutorial will help you with writing images to database.

Adding parts of code:

Webservice for file upload:

@Path("/file")
public class UploadFileService {

    @POST
    @Path("/upload")
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public Response uploadFile(
        @FormDataParam("file") InputStream uploadedInputStream,
        @FormDataParam("file") FormDataContentDisposition fileDetail) {

        String uploadedFileLocation = "d://uploaded/" + fileDetail.getFileName();

        // save it
        writeToFile(uploadedInputStream, uploadedFileLocation);

        String output = "File uploaded to : " + uploadedFileLocation;

            /************************************************/ 
             // CALL THE IMAGE UPLOAD TO DB CODE HERE.
             // InsertImageTest.insertImage();
            /*************************************************/
        return Response.status(200).entity(output).build();

    }

    // save uploaded file to new location
    private void writeToFile(InputStream uploadedInputStream,
        String uploadedFileLocation) {

        try {
            OutputStream out = new FileOutputStream(new File(
                    uploadedFileLocation));
            int read = 0;
            byte[] bytes = new byte[1024];

            out = new FileOutputStream(new File(uploadedFileLocation));
            while ((read = uploadedInputStream.read(bytes)) != -1) {
                out.write(bytes, 0, read);
            }
            out.flush();
            out.close();
        } catch (IOException e) {

            e.printStackTrace();
        }

    }

}

JAVA CODE FOR IMAGE SAVING TO DB

public class InsertImageTest {

    /**
     * This is used to get the Connection
     * 
     * @return
     */
    public Connection getConnection() {
        Connection connection = null;

        try {
            Class.forName("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/technicalkeeda", "root", "");
        } catch (Exception e) {
            System.out.println("Error Occured While Getting the Connection: - "
                    + e);
        }
        return connection;
    }

    /**
     * Insert Image
     */
    public void insertImage() {
        Connection connection = null;
        PreparedStatement statement = null;
        FileInputStream inputStream = null;

        try {
            File image = new File("C:/honda.jpg");
            inputStream = new FileInputStream(image);
            connection = getConnection();
            statement = connection
                    .prepareStatement("insert into trn_imgs(img_title, img_data) "
                            + "values(?,?)");
            statement.setString(1, "Honda Car");
            statement.setBinaryStream(2, (InputStream) inputStream,
                    (int) (image.length()));

            statement.executeUpdate();
        } catch (FileNotFoundException e) {
            System.out.println("FileNotFoundException: - " + e);
        } catch (SQLException e) {
            System.out.println("SQLException: - " + e);
        } finally {
            try {
                connection.close();
                statement.close();
            } catch (SQLException e) {
                System.out.println("SQLException Finally: - " + e);
            }
        }

    }

    /***
     * Execute Program
     * 
     * @param args
     * @throws SQLException
     */
    public static void main(String[] args) throws SQLException {
        InsertImageTest imageTest = new InsertImageTest();
        imageTest.insertImage();
    }

}
ngrashia
  • 9,869
  • 5
  • 43
  • 58
0

The best and easy way to upload any file from android to Mysql server is via using FTP client Library. Link

Find the ftp4j-1.6.jar file and import in your project

then you can upload image on your server via following code.

public void upload(){


    FTPClient con = null;


        con = new FTPClient();
        con.connect("192.168.2.57"); // Your Server IP and Port you can use FTP domain credentials here also

        if (con.login("XXXXXXXXX", "XXXXX")) // FTP username and Pass
        {
            con.enterLocalPassiveMode(); // important!
            con.setFileType(FTP.BINARY_FILE_TYPE);
            String data = "/sdcard/vivekm4a.m4a"; // Your File Path

            FileInputStream in = new FileInputStream(new File(data));
            boolean result = con.storeFile("/vivekm4a.m4a", in);
            in.close();
            if (result) Log.v("upload result", "succeeded");
            con.logout();
            con.disconnect();
        }
    }

}

Hope this Helps

Qadir Hussain
  • 8,721
  • 13
  • 89
  • 124