Quantcast
Channel: Appcelerator Developer Center Q&A Unanswered Questions 20
Viewing all articles
Browse latest Browse all 8068

Connect to FTP server via TLS

$
0
0

Good Day, I'm having trouble uploading an image to a FTP server via TLS on Android 4.4 with Titanium SDK 3.4.0.GA. I'm able to connect to the server, but that's as far as i've gotten. After it connects, when I try to log into the server, I get the following message: [INFO] : Received: 550 TLS handshake failed What is going wrong? Here is my code: [App.js]

var mediaFileToUpload = '';
 
var win = Titanium.UI.createWindow({backgroundColor:'white'});
 
var connectButton = Titanium.UI.createButton({
title:'Connect',
top: 155,
left:30,
right:30,
height:40
});
win.add(connectButton);
var upB = Titanium.UI.createButton({
title:'upload',
top: 195,
left:30,
right:30,
height:40
});
win.add(upB);
upB.addEventListener('click', function(e){
    logout();
});
var controlSocket = Ti.Network.Socket.createTCP({
host:'xxx.xxx.xxx.xxx',
port:'21',
stripTerminator:true,
mode:Titanium.Network.READ_WRITE_MODE,
connected: function(e) { Ti.API.info("Connected to xxx.xxx.xxx.xxx"); tryToConnect();},
});
 
function tryToConnect() {
    Ti.API.info("Trying to connect with SSL");
    Ti.Stream.pump(controlSocket, readCallback, 1024, true);
    Ti.Stream.write(controlSocket, Ti.createBuffer({
        value: 'AUTH SSL\r\n'
    }), writeCallback);
    Ti.API.info("SSL succeeded!");
    Ti.API.info("PBSZ Stuff"); // right here is where it fails.
    Ti.Stream.pump(controlSocket, readCallback, 1024, true);
    Ti.Stream.write(controlSocket, Ti.createBuffer({
        value: 'PBSZ 0\r\n\r\n'
    }), writeCallback);
    Ti.API.info("Entered PBSZ");
    Ti.API.info("Logging in");
    Ti.Stream.pump(controlSocket, readCallback, 1024, true);
    Ti.Stream.write(controlSocket, Ti.createBuffer({
        value: 'USER [user]\r\n'
    }), writeCallback);
    Ti.API.info("User Entered");
    Ti.API.info("Password:");
    Ti.Stream.pump(controlSocket, readCallback, 1024, true);
    Ti.Stream.write(controlSocket, Ti.createBuffer({
        value: 'PASS [password]\r\n'
    }), writeCallback);
    Ti.API.info("Password Entered");
    Ti.API.info("Logged in and ready to use server!");
    Ti.API.info("Changing to /smcapp directory...");
    Ti.Stream.pump(controlSocket, readCallback, 1024, true);
    Ti.Stream.write(controlSocket, Ti.createBuffer({
        value: 'CWD /smcapp\r\n'
    }), writeCallback);
    Ti.API.info("Changed to /smcapp directory");
    Ti.API.info("Entering Passive mode...");
    Ti.Stream.pump(controlSocket, readCallback, 1024, true);
    Ti.Stream.write(controlSocket, Ti.createBuffer({
        value: 'PASV\r\n'
    }), writeCallback);
    Ti.API.info("Entered Passive mode");
    Ti.API.info("Sending File to server...");
    Ti.Stream.pump(controlSocket, readCallback, 1024, true);
    Ti.Stream.write(controlSocket, Ti.createBuffer({
        value: 'STOR ' + Ti.Filesystem.applicationDataDirectory + '/' + 'Image2.png' + '\r\n'
    }), writeCallback);
    Ti.API.info('Sent File to server.');
    Ti.API.info('Checking mediaFileToUpload...');
    Ti.API.info('mediaFileToUpload = ' + mediaFileToUpload);
    //logout();
    //upload(e); 
}
function readCallback(e) { 
    if (e.bytesProcessed == -1) { // Error / EOF on socket. Do any cleanup here. 
 
        Ti.API.error('something went wrong' + e.buffer.toString());
    }
    try { 
                if (e.buffer) { 
                    var received = e.buffer.toString(); 
                    Ti.API.info('Received: ' + received); 
                    }
            }
            catch (er)
            {
 
            }
 
    }
function writeCallback(e) { Ti.API.info('Successfully wrote to socket.'); }
controlSocket.addEventListener('readError', function(e) {
Titanium.API.info('Socket read error: ' + e.error);
});
 
controlSocket.addEventListener('writeError', function(e) {
Titanium.API.info('Socket write error: ' + e.error);
});
 
function logout()
{
    try {
    Titanium.API.info('[CLIENT] Quitting');
    Ti.Stream.pump(controlSocket, readCallback, 1024, true);
    Ti.Stream.write(controlSocket, Ti.createBuffer({
        value: 'QUIT\r\n'
    }), writeCallback);
    Ti.API.info('221 Goodbye.');
    }
    catch (ex)
    {
        Ti.API.error('Failed to logout. Error: ' + ex.toString());
    }
    //connectButton.title = 'Connect';
}
 
connectButton.addEventListener('click', function(){
//if (connectButton.title == 'Connect') {
    try {
        //Titanium.API.info('[CLIENT] Connecting to ' + controlSocket.host);
        //controlSocket.connect();
        //connectButton.title = 'Disconnect';
        //connectButton.title = 'Disconnect';
        upload();
    } catch (e) {
        Titanium.API.info('Error: ' + e.error);
    }
//} else {
 
//}   
});
 
function upload()
{
    Titanium.Media.showCamera({
        success:function(event){
            if (event.mediaType == Ti.Media.MEDIA_TYPE_PHOTO) {
                var errorMessage = 'unknown [default] (or no problems!)';
                    var path = Ti.Filesystem.getApplicationDataDirectory();
                    var aFile = Ti.Filesystem.getFile(path, 'Image2.png');
                    mediaFileToUpload = aFile.getNativePath();
                    aFile.write(event.media);
                    Ti.API.info(aFile.nativePath + "     = fx.nativePath");
                    Ti.API.info(aFile.name + "    = fx.name");
                    Ti.API.info('connecting to server 208.109.104.197');
                    controlSocket.connect();
                    try {
                    }
                    catch (exe)
                    {
                        errorMessage = "Failed to Log out.";
                    }
                alert('failed to send file to smc national. error: ' + errorMessage);
            }
            else {
                alert("Please take a picture, not a video");
            }
        },
        cancel:function(event){
 
        },
        error:function(event){
            alert("An Error Occured. Sorry.");
        },
    });
 
}

Viewing all articles
Browse latest Browse all 8068

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>