Quantcast
Channel: Adobe Community : Unanswered Discussions - AIR Development
Viewing all articles
Browse latest Browse all 2010

File.upload on Air SDK for iOS devices failed to send http request to server.

$
0
0

I am trying to use ActionScript's File.upload to upload a file on Air SDK for iOS environment, but the File.upload does not work properly. No handler about the file upload is executed after File.upload is invoked, and no exception is caught. When I check the network traffic of the server side, I found that no http request even hit the server after File.upload is executed. The code snippet here is very simple.

----------------------------------------------------------

  private var file:File;

  private var dir:File;

 

  //This method is executed to create a file and upload it when the Upload Button is pressed.

  protected function OnUploadButtonPressed(event:MouseEvent):void{

  var str:String = 'This is test';

 

  var imageBytes:ByteArray = new ByteArray();

  for ( var i:int = 0; i < str.length; i++ ) {

  imageBytes.writeByte( str.charCodeAt(i) );

  }

 

  try{

  dir = File.applicationStorageDirectory

  var now:Date = new Date();

  var filename:String = "test" + now.seconds + now.milliseconds + ".txt";

  file = dir.resolvePath( filename );

  var stream:FileStream = new FileStream();

  stream.open( file, FileMode.WRITE );

  stream.writeBytes( imageBytes );

  stream.close();

 

  file.addEventListener( Event.COMPLETE, uploadComplete );

  file.addEventListener( IOErrorEvent.IO_ERROR, ioError );

  file.addEventListener( SecurityErrorEvent.SECURITY_ERROR, securityError );

  file.addEventListener(ErrorEvent.ERROR, someError);

  file.addEventListener(ProgressEvent.PROGRESS, onProgress);

 

  file.upload( new URLRequest("http://10.60.99.31/MyPath/fileUploadTest.do"));//This line does not work. No handler is executed. No http request hit the server side.

  } catch( e:Error ) {

  trace( e );

  }

  }

 

  //Complete Handler

  private function uploadComplete( event:Event ):void

  {

  trace( "Upload successful." );

  }

 

  //IOError handler

  private function ioError( error:IOErrorEvent ):void

  {

  trace( "Upload failed: " + error.text );

  }

 

  //SecurityError handler

  private function securityError(error:SecurityErrorEvent):void{

  trace( "Security error:" + error.text );

  }

 

  //Other handler

  private function someError(error:ErrorEvent):void{

  trace("some error" + error.text);

  }

 

  //Progress handler

  private function onProgress(event:ProgressEvent):void{

  trace("progressHandler");

  }

------------------------------------------------------

When executed on Air Simulator, it works fine as expected, and the file is successfully uploaded to the server. But When executed on iOS devices(in my case, iPad), as I explain early, no handler about the file upload is executed, and no the http request even hit the server. So I think the problem may be in the client side. It seems that the Air SDK for iOS just failed to send the http request for some reason.


To make my problem more clear, I list my environment below:

  • Development Environment:  Windows7 (64bit)  / Mac os 10.9.4 (Tested on  two OS platforms.)
  • IDE: Flash Builder 4.7
  • Air SDK:  3.8 / 16.0.0 (After I updated to the lastest Air SDK 16.0.0 , the problem still exists.)
  • Application Server:  Tomcat7 + Spring


I have been struggling for this for days. So I really appreciate it if anyone has any idea about this.

Thanks in advance.


Viewing all articles
Browse latest Browse all 2010

Trending Articles



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