Flash 8 FileReference Upload on SSL???

Hi All,

I am frantically trying to get this the new FileReference function in Flash 8 to work under ssl.
It says it can support ssl but the files are never uploaded. Http OK / HTTPS not OK.

A demo of it running can be found here: http://www.tink.ws/blog/files/flash8/UploadExample.html (not my site)

and the source here: http://www.tink.ws/blog/files/flash8/FileReference.zip

What do i need to alter to make it work. I have changed all the tags to https but no change all that happens is the status bar sits at zero % and the text just continually says "upload started".

Any advice would be greatly appreciated.

Many thanks in advance

spiroosx
 
spiroosxAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

MilesTinsleyCommented:
Hi,

I spent hours (no, days!) trying to work this out. I develop online web applictions and needed to use FileReference over SSL.

If you have got everything else sorted, all you need to do is to specify ':443' after the domain name to are uploading/downloading from. And of course make sure you have 'https'! So for example:

blahblah.upload('https://www.yourdomain.com:443/files/stuff/whatever')

Flash defaults to using port 80, which is for http. Even if you specify https at the beginning of the URL.

I really hope this works for you. I know how frustrating this can be!!

Miles
0
spiroosxAuthor Commented:
Hi Miles,

Thank you for coming back to me :-)

I have tried your solution and unfortunatley i am a little uncear as to where the port is specified.

The setup i have is all the contents of http://www.tink.ws/blog/files/flash8/FileReference.zip
uploaded into a folder called "upload"

so the path to this folder is:

https://www.mysite.co.uk/upload/UploadExample.html

I have changed the tags in the html page to be https.

Obviously if i enter https://www.mysite.co.uk:443/upload/UploadExample.html nothing happens so i then have gone through the imported .as file shown below:

Would i change: success = this._fileRef.upload(UploadExample.URL);

to: success = this._fileRef.upload(https://www.mysite.co.uk:443/upload/); ???

Any further help would be greatly appreciated.

Many thanks

spiroosx




/////////////////////////////////////////////
//Imports
/////////////////////////////////////////////
import mx.utils.Delegate;

import mx.controls.TextArea;
import mx.controls.ProgressBar;
import mx.controls.Button;

import flash.net.FileReference;
/////////////////////////////////////////////
      /////////////////////////////////////////////



class UploadExample extends MovieClip
{
      
      
      
      /////////////////////////////////////////////
      //Components
      /////////////////////////////////////////////
      //TextArea component
      private var _textArea:TextArea;
      //ProgressBar component
      private var _progressBar:ProgressBar;
      //Button components
      private var _browse_btn:Button;
      private var _upload_btn:Button;
      /////////////////////////////////////////////
      /////////////////////////////////////////////
      
      /////////////////////////////////////////////
      //FileReference object
      /////////////////////////////////////////////
      private var _fileRef:FileReference;
      /////////////////////////////////////////////
      /////////////////////////////////////////////
      
      /////////////////////////////////////////////
      //server script configured to handle upload through HTTP POST calls
      /////////////////////////////////////////////
      private static var URL:String = "upload.php";
      /////////////////////////////////////////////
      /////////////////////////////////////////////
      
      
      
      /////////////////////////////////////////////
      //Constructor
      /////////////////////////////////////////////
      public function UploadExample()
      {
            super();
      }
      /////////////////////////////////////////////
      /////////////////////////////////////////////
      
      
      
      /////////////////////////////////////////////
      //onLoad
      /////////////////////////////////////////////
      private function onLoad():Void
      {
            this._textArea.fontSize = 15;

            this._progressBar.mode = "manual";
            
            this._browse_btn.label = "Browse";
            this._browse_btn.onPress = Delegate.create(this, this.browse);
            
            this._upload_btn.label = "Upload";
            this._upload_btn.onPress = Delegate.create(this, this.upload);
            
            this._fileRef = new FileReference();
            this._fileRef.addListener(this);
      }
      /////////////////////////////////////////////
      /////////////////////////////////////////////


      
      /////////////////////////////////////////////
      //Button events
      /////////////////////////////////////////////
      private function browse():Void
      {
            var success:Boolean;
            
            //open OS window and specify a description for each group and the file types allowed in that group
            success = this._fileRef.browse([{description: "All Formats (*.jpg,*.gif,*.png,*.swf)", extension: "*.jpg;*.gif;*.png;*.swf", macType: "JPEG;jp2_;GIFF;SWFL"},
                                                            {description: "All Image Formats (*.jpg,*.gif,*.png)", extension: "*.jpg;*.gif;*.png", macType: "JPEG;jp2_;GIFF"},
                                                            {description: "Flash Movies (*.swf)", extension: "*.swf", macType: "SWFL"}]);
            
            //if the OS window failed to open
            if(success == false)
            {
                  this._textArea.text += "OS window failed to open\n////////////////////////////////////////////////////////////////////////////\n\n";
                  
                  this._textArea.vPosition = this._textArea.maxVPosition;
            }
      }
      
      
      
      private function upload():Void
      {
            var success:Boolean;
            
            //start upload process
            success = this._fileRef.upload(UploadExample.URL);
            
            //if the upload process failed to start
            if(success == false)
            {
                  this._textArea.text += "upload process failed to start\n////////////////////////////////////////////////////////////////////////////\n\n";
                  
                  this._textArea.vPosition = this._textArea.maxVPosition;
            }
      }
      /////////////////////////////////////////////
      /////////////////////////////////////////////
            
            
      
      /////////////////////////////////////////////
      //FileReference events
      /////////////////////////////////////////////
      private function onSelect(fileRef:FileReference):Void
      {      
            this._textArea.text += "file selected to upload\n\n";
            
            this._textArea.text += "file details\n";
            this._textArea.text += "name: " + fileRef.name + "\n";
            this._textArea.text += "type: " + fileRef.type + "\n";
            this._textArea.text += "size: " + fileRef.size + "\n";
            this._textArea.text += "creator: " + fileRef.creator + "\n";
            this._textArea.text += "created: " + fileRef.creationDate + "\n";
            this._textArea.text += "last modified: " + fileRef.modificationDate + "\n////////////////////////////////////////////////////////////////////////////\n\n";
            
            this._textArea.vPosition = this._textArea.maxVPosition;
      }
      
      
      
      private function onOpen(fileRef:FileReference):Void
      {
            this._textArea.text += "upload started\n////////////////////////////////////////////////////////////////////////////\n\n";
            
            this._textArea.vPosition = this._textArea.maxVPosition;
      }
      
      
      
      private function onProgress(fileRef:FileReference, loaded_num:Number, total_num:Number):Void
      {
            this._progressBar.setProgress(loaded_num, total_num);
      }
      
      
      
      private function onComplete(fileRef:FileReference):Void
      {
            this._progressBar.setProgress(100, 100);
            
            this._textArea.text += "upload successful\n////////////////////////////////////////////////////////////////////////////\n\n";
            
            this._textArea.vPosition = this._textArea.maxVPosition;
      }
      
      
      
      private function onCancel():Void
      {
            this._textArea.text += "OS window dismissed\n////////////////////////////////////////////////////////////////////////////\n\n";
      }
      
      
      
      private function onHTTPError(fileRef:FileReference):Void
      {
            this._textArea.text += "onHTTPError: " + fileRef.name + "\n////////////////////////////////////////////////////////////////////////////\n\n";
                  
            this._textArea.vPosition = this._textArea.maxVPosition;
      }
      
      
      
      private function onIOError(fileRef:FileReference):Void
      {
            this._textArea.text += "onIOError: " + fileRef.name + "\n////////////////////////////////////////////////////////////////////////////\n\n";
            
            this._textArea.vPosition = this._textArea.maxVPosition;
      }
      
      
      
      private function onSecurityError(fileRef:FileReference, error_str:String):Void
      {
            this._textArea.text += "onSecurityError: " + fileRef.name + "   error : " + error_str + "\n////////////////////////////////////////////////////////////////////////////\n\n";
            
            this._textArea.vPosition = this._textArea.maxVPosition;
      }
      /////////////////////////////////////////////
      /////////////////////////////////////////////



}
0
MilesTinsleyCommented:
Hello there,

Yes you need to explicitly specify the absolute path to the upload php script (upload.php).

So changing:  success = this._fileRef.upload(UploadExample.URL);

to: success = this._fileRef.upload(https://www.mysite.co.uk:443/upload/upload.php);  

Should do the trick. In fact, it will probably be easier if you change your variable definition at the start of your class:    

from;     private static var URL:String = "upload.php";
to;         private static var URL:String = "https://www.mysite.co.uk:443/upload/upload.php";

Let me know if this works? I hope you get a result ;)

Regards

Miles



0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
spiroosxAuthor Commented:
Hi Miles.

Thank you very much - you have made my week :-)

That works great

Cheers

spiroosx
0
MilesTinsleyCommented:
Hello Spiroosx,

I am very pleased to be of assistance! Good luck with the project...

Miles
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Adobe Flash

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.