how to upload images to ftp server using spring MultipartFile without storing images in local disk

Viewed 3913

Can anyone help me how to upload images to ftp server with out storing to local disk in spring, i tried it is uploading but it is storing images in same project work space and also in ftp server.

Below code which i tried?

@RequestMapping(method = RequestMethod.POST, value = "/updateprofile1", consumes = "multipart/form-data")
public String handleFileUpload(@RequestParam("file") MultipartFile file, RedirectAttributes redirectAttributes) {


    FTPSClient con = getFTPConnection();

    try {

        con.setFileType(FTP.BINARY_FILE_TYPE);
    //  createDirectory(con, "test");
        showServerReply(con);
        System.out.println("Target directory: %s" + con.printWorkingDirectory());
        con.setFileType(FTP.BINARY_FILE_TYPE);
        con.enterLocalPassiveMode();


            con.changeWorkingDirectory("user/user_profile");
            con.enterLocalPassiveMode(); // important!
            con.setFileType(FTP.BINARY_FILE_TYPE);
            String fileName = currrentTime.getTimeInMillis() + "_" + file.getName()+".jpg";
            boolean result = con.storeFile(fileName, file.getInputStream());
            con.logout();
            con.disconnect();
            redirectAttributes.addFlashAttribute("message",
                    "You successfully uploaded " + file.getOriginalFilename() + "!");

    } catch (Exception e) {
        redirectAttributes.addFlashAttribute("message", "Could not upload " + file.getOriginalFilename() + "!");
    }

    return "You successfully uploaded " + file.getOriginalFilename() + "!";
}
public static FTPSClient getFTPConnection() {
    FTPSClient ftp = new FTPSClient();
    int reply;
    try {
        ftp.connect("1***4");
        ftp.login("****", "****);
        reply = ftp.getReplyCode();
        if (FTPReply.isPositiveCompletion(reply)) {
            for (int i = 0; i < ftp.listDirectories().length; i++) {
                System.out.println(ftp.listDirectories());
            }
            ftp.changeWorkingDirectory("user");
            showServerReply(ftp);
        //  LOGGER.info("-------->>> %s", ftp.printWorkingDirectory());
            showServerReply(ftp);
            //LOGGER.info("Connected Success");
        } else {
            //LOGGER.error("Connection Failed");
            ftp.disconnect();
            ftp = null;
        }
    } catch (SocketException ex) {
        //LOGGER.error("Error while trying to connect to the ImageBak Repository");
        ex.printStackTrace();
        ftp = null;
    } catch (IOException ex) {
        //LOGGER.error("Error while trying to connect to the ImageBak Repository");
        ex.printStackTrace();
        ftp = null;
    }

    return ftp;

}
private static void showServerReply(FTPClient ftpClient) {
    String[] replies = ftpClient.getReplyStrings();
    if (replies != null && replies.length > 0) {
        for (String aReply : replies) {
            System.out.println("SERVER: " + aReply);
        }
    }
}
1 Answers
Related