[thelist] Flash uploading problem

Dan Sheetz dan at goodfoodpro.com
Fri Aug 31 12:48:41 CDT 2007


Hello all,

I'm having a voodoo-like problem with uploading files through flash.   
I have a swf that's part of a custom CMS tool that allows users to  
upload a logo and header image to configure their page.  The system  
works perfectly on one of my servers (hosted on Mosso.com), but  
breaks inexplicably when placed on a LAMP server hosted by  
SoftLayer.com.

The mosso server runs PHP 4.4.7.  The softlayer server runs PHP  
4.3.9... just in case that could have anything to do with this.

The system uses the following little PHP script to receive the  
uploaded file:

-------

//create the directory if doesn't exist (should have write permissons)
if(!is_dir("./uploads")) mkdir("./uploads", 0755);

//move the uploaded file
move_uploaded_file($_FILES['Filedata']['tmp_name'], "./uploads/". 
$_FILES['Filedata']['name']);
chmod("./uploads/".$_FILES['Filedata']['name'], 0777);

-------

and here's the actionscript for the file uploader widget:

-------

// allow this domain
System.security.allowDomain("http://mydomain.com/");
import flash.net.FileReference;

// the listener object listens for FileReference events.
var listener:Object = new Object();

// when the user selects a file, the onSelect() method is called, and
// passed a reference to the FileReference object.
listener.onSelect = function(selectedFile:FileReference):Void {
   // flash is attempting to upload the image.
   statusArea.text = "Attempting to upload " + selectedFile.name + "\n";
   // upload the file to the PHP script on the server.
   selectedFile.upload("upload.php");
};

// the file is starting to upload.
listener.onOpen = function(selectedFile:FileReference):Void {
   statusArea.text = "Uploading " + selectedFile.name + "\n";
};

listener.onProgress = function(selectedFile:FileReference):Void {
   statusArea.text = "Uploading " + selectedFile.name + "\n";
};

// possible file upload errors
listener.onHTTPError = function(file:FileReference,  
httpError:Number):Void {
	statusArea.text = "HTTPError number: "+httpError +"\nFile: "+  
file.name;
}

listener.onIOError = function(file:FileReference):Void {
	statusArea.text = "IOError: "+ file.name;
}

listener.onSecurityError = function(file:FileReference,  
errorString:String):Void {
	statusArea.text = "SecurityError: "+SecurityError+"\nFile: "+  
file.name;	
}

// the file has uploaded
listener.onComplete = function(selectedFile:FileReference):Void {
   // notify the user that Flash is starting to download the image.
   statusArea.text = "Upload finished.\nNow downloading " +  
selectedFile.name;
   // show file details
   details.text = ""
   for(i in selectedFile) details.text +="<b>"+i+":</b> "+selectedFile 
[i]+"\n"
   // call the custom downloadImage() function.
   downloadImage(selectedFile.name);
};

var imageFile:FileReference = new FileReference();
imageFile.addListener(listener);

-------

The file uploads successfully on both servers, but on the SoftLayer  
server, the listener.onComplete method is not called after the file  
is uploaded.

Could this be a php.ini problem?  An apache problem?  I am at a  
loss.  Any kind of direction or similar experience from others who  
have used flash for file uploading would be much appreciated.

Thanks,
Dan


~
Dan Sheetz
Good Food Productions




More information about the thelist mailing list