Package org.apache.ftpserver.ftplet

Examples of org.apache.ftpserver.ftplet.FileObject


                session.closeOnFlush().awaitUninterruptibly(10000);
                return;
            }
           
            // get filename
            FileObject file = null;
            try {
                file = session.getFileSystemView().getFileObject(fileName);
            }
            catch(Exception ex) {
                LOG.debug("Exception getting file object", ex);
            }
            if(file == null) {
                session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "STOR.invalid", fileName));
                return;
            }
            fileName = file.getFullName();
           
            // get permission
            if( !file.hasWritePermission() ) {
                session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "STOR.permission", fileName));
                return;
            }
           
            // get data connection
      session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_150_FILE_STATUS_OKAY, "STOR", fileName)).awaitUninterruptibly(10000);
           
            DataConnection dataConnection;
            try {
                dataConnection = session.getDataConnection().openConnection();
            } catch (Exception e) {
                LOG.debug("Exception getting the input data stream", e);
                session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_425_CANT_OPEN_DATA_CONNECTION, "STOR", fileName));
                return;
            }
           
            // transfer data
            boolean failure = false;
            OutputStream outStream = null;
            try {
                outStream = file.createOutputStream(skipLen);
                long transSz = dataConnection.transferFromClient(outStream);
               
                // log message
                String userName = session.getUser().getName();
                LOG.info("File upload : " + userName + " - " + fileName);
View Full Code Here


            session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "SIZE", null));
            return
        }
       
        // get file object
        FileObject file = null;
        try {
            file = session.getFileSystemView().getFileObject(fileName);
        }
        catch(Exception ex) {
            LOG.debug("Exception getting file object", ex);
        }
        if(file == null) {
            session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "SIZE.missing", fileName));
            return;
        }
       
        // print file size
        fileName = file.getFullName();
        if(!file.doesExist()) {
            session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "SIZE.missing", fileName));
        }
        else if(!file.isFile()) {
            session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "SIZE.invalid", fileName));
        }
        else {
            String fileLen = String.valueOf(file.getSize());            
            session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_213_FILE_STATUS, "SIZE", fileLen));
        }
    }
View Full Code Here

                session.closeOnFlush().awaitUninterruptibly(10000);
                return;
            }
           
            // get filenames
            FileObject file = null;
            try {
                file = session.getFileSystemView().getFileObject(fileName);
            }
            catch(Exception e) {
                LOG.debug("File system threw exception", e);
            }
            if(file == null) {
                session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "APPE.invalid", fileName));
                return;
            }
            fileName = file.getFullName();
           
            // check file existance
            if(file.doesExist() && !file.isFile()) {
                session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "APPE.invalid", fileName));
                return;
            }
           
            // check permission
            if( !file.hasWritePermission()) {
              session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "APPE.permission", fileName));
                return;
            }
           
            // get data connection
            session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_150_FILE_STATUS_OKAY, "APPE", fileName));
           
            DataConnection dataConnection;
            try {
                dataConnection = session.getDataConnection().openConnection();
            } catch (Exception e) {
                LOG.debug("Exception when getting data input stream", e);
                session.write(FtpReplyUtil.translate(session,request,  context, FtpReply.REPLY_425_CANT_OPEN_DATA_CONNECTION, "APPE", fileName));
                return;
            }
            
            // get data from client
            boolean failure = false;
            OutputStream os = null;
            try {
               
              // find offset
              long offset = 0L;
              if(file.doesExist()) {
                offset = file.getSize();
              }
             
                // open streams
                os = file.createOutputStream(offset);
                   
                // transfer data
                long transSz = dataConnection.transferFromClient(os);
               
                // log message
View Full Code Here

            session.closeOnFlush().awaitUninterruptibly(10000);
            return;
        }
       
        // get file object
        FileObject file = null;
        try {
            file = session.getFileSystemView().getFileObject(fileName);
        }
        catch(Exception ex) {
            LOG.debug("Exception getting file object", ex);
        }
        if(file == null) {
            session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "RMD.permission", fileName));
            return;
        }
       
        // check permission
        fileName = file.getFullName();
        if( !file.hasDeletePermission() ) {
            session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "RMD.permission", fileName));
            return;
        }
       
        // check file
        if(!file.isDirectory()) {
            session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "RMD.invalid", fileName));
            return;
        }
       
        // now delete directory
        if(file.delete()) {
            session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_250_REQUESTED_FILE_ACTION_OKAY, "RMD", fileName));
           
            // write log message
            String userName = session.getUser().getName();
            LOG.info("Directory remove : " + userName + " - " + fileName);
View Full Code Here

            session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "RNFR", null));
            return
        }
               
        // get filename
        FileObject renFr = null;
        try {
            System.out.println("######" + session.getFileSystemView());
            renFr = session.getFileSystemView().getFileObject(fileName);
        }
        catch(Exception ex) {
            LOG.debug("Exception getting file object", ex);
        }
           
        // check file
        if(renFr == null) {
            session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "RNFR", fileName));
        }
        else {
            session.setRenameFrom(renFr);
            fileName = renFr.getFullName();
            session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_350_REQUESTED_FILE_ACTION_PENDING_FURTHER_INFORMATION, "RNFR", fileName));   
        }
    }
View Full Code Here

                session.closeOnFlush().awaitUninterruptibly(10000);
                return;
            }
           
            // get the "rename from" file object
            FileObject frFile = session.getRenameFrom();
            if( frFile == null ) {
                session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_503_BAD_SEQUENCE_OF_COMMANDS, "RNTO", null));
                return;
            }
           
            // get target file
            FileObject toFile = null;
            try {
                toFile = session.getFileSystemView().getFileObject(toFileStr);
            }
            catch(Exception ex) {
                LOG.debug("Exception getting file object", ex);
            }
            if(toFile == null) {
                session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_553_REQUESTED_ACTION_NOT_TAKEN_FILE_NAME_NOT_ALLOWED, "RNTO.invalid", null));
                return;
            }
            toFileStr = toFile.getFullName();
           
            // check permission
            if( !toFile.hasWritePermission() ) {
                session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_553_REQUESTED_ACTION_NOT_TAKEN_FILE_NAME_NOT_ALLOWED, "RNTO.permission", null));
                return;
            }
           
            // check file existance
            if( !frFile.doesExist() ) {
                session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_553_REQUESTED_ACTION_NOT_TAKEN_FILE_NAME_NOT_ALLOWED, "RNTO.missing", null));
                return;
            }
           
            // now rename
            if( frFile.move(toFile) ) {
                session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_250_REQUESTED_FILE_ACTION_OKAY, "RNTO", toFileStr));

                LOG.info("File rename (" + session.getUser().getName() + ") "
                                         + frFile.getFullName() + " -> " + toFile.getFullName());
               
                // call Ftplet.onRenameEnd() method
                try {
                    ftpletRet = ftpletContainer.onRenameEnd(session.getFtpletSession(), request);
                } catch(Exception e) {
View Full Code Here

        session.resetState();
       
//      parse argument
        ListArgument parsedArg = ListArgumentParser.parse(request.getArgument());
       
        FileObject file = null;
        try {
            file = session.getFileSystemView().getFileObject(parsedArg.getFile());
            if(file != null && file.doesExist()) {
                FileFormater formater = new MLSTFileFormater((String[])session.getAttribute("MLST.types"));
                session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_250_REQUESTED_FILE_ACTION_OKAY, "MLST", formater.format(file)));
            } else {           
                session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "MLST", null));
            }
View Full Code Here

            // OK
        }
    }

    public void testFullName() {
        FileObject fileObject = createFileObject(FILE2_PATH, USER);
        assertEquals("/dir1/file2", fileObject.getFullName());
   
        fileObject = createFileObject("/dir1/", USER);
        assertEquals("/dir1", fileObject.getFullName());
   
        fileObject = createFileObject("/dir1", USER);
        assertEquals("/dir1", fileObject.getFullName());
    }
View Full Code Here

        fileObject = createFileObject("/dir1", USER);
        assertEquals("/dir1", fileObject.getFullName());
    }

    public void testShortName() {
        FileObject fileObject = createFileObject("/dir1/file2", USER);
        assertEquals("file2", fileObject.getShortName());
   
        fileObject = createFileObject("/dir1/", USER);
        assertEquals("dir1", fileObject.getShortName());
   
        fileObject = createFileObject("/dir1", USER);
        assertEquals("dir1", fileObject.getShortName());
    }
View Full Code Here

        fileObject = createFileObject("/dir1", USER);
        assertEquals("dir1", fileObject.getShortName());
    }
   
    public void testListFilesInOrder() {
        FileObject root = createFileObject("/", USER);
       
        FileObject[] files = root.listFiles();
        assertEquals(3, files.length);
        assertEquals("dir1", files[0].getShortName());
        assertEquals("file1", files[1].getShortName());
        assertEquals("file3", files[2].getShortName());
    }
View Full Code Here

TOP

Related Classes of org.apache.ftpserver.ftplet.FileObject

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.