davegfx Posted October 27, 2009 Share Posted October 27, 2009 Hi First post here and am not a programmer so be gentle. I'm not quite sure whether this is a flash problem, a server issue, or a php coding thing. My site is flash based, but utilizes several php files. The problem i'm having is with a submission form in which the user uploads several files - an image(x2), a document(x2), and a movie. When the user uploads them, these files are places in an automatically generated tracking folder on the server. Now, the images and documents all upload and get places in the folder perfectly. The movie file seems to upload normally - however, when i check the folder, the movie is not in there. One interesting thing though is that when i tested with a very small avi (like 150 bytes or something) it was fine. Does anyone have any ideas? This is the php script: <?php $subdir=$HTTP_GET_VARS['fid']; if(!is_dir("uploadx/".$subdir)){ mkdir("uploadx/".$subdir, 0777); } if (is_uploaded_file($_FILES['Filedata']['tmp_name'])) { $uploadDirectory = "uploadx/".$subdir."/"; $uploadFile = $uploadDirectory. basename($_FILES['Filedata']['name']); copy($_FILES['Filedata']['tmp_name'], $uploadFile); } ?> And this is the flash script for the upload: fileStatus = 0; bar._xscale = 0; status_txt.text = "Select a file"; //import the FileReference Object import flash.net.FileReference; //create a new FileReference object var fileRef:FileReference = new FileReference(); //create a listener object for FileReference events var fileRefListener:Object = new Object(); //apply object listener to the file reference object // setting files to be browsed if (paramType == 1) { fileDescription = "Photographs - Jpg & Png only"; fileExtension = "*.jpg; *.jpeg; *.png"; } else if (paramType == 2) { fileDescription = "Videos - Mov & Avi only"; fileExtension = "*.avi; *.mov"; } else if (paramType == 3) { fileDescription = "Documents - Word & Pdf only"; fileExtension = "*.doc; *.docx; *.pdf"; } //===================== FILEREFERENCE EVENT HANDLER =====================// //When user selects a file from the file-browsing dialog box, //the onSelect() method is called, and passed a reference to the FileReference object fileRefListener.onSelect = function(fileRef:FileReference):Void { status_txt.text = "File Size: "+fileRef.size+" bytes"+'\n'; status_txt.text = "File Type: "+fileRef.type+'\n'; status_txt.text = "File Name: "+fileRef.name+'\n'; status_txt.text = fileRef.name; file_mem = ""+fileRef.name+""; fileStatus = 1; }; //When user dismiss the file-browsing dialog box, //the onCancel() method is called, and passed a reference to the FileReference object fileRefListener.onCancel = function(fileRef:FileReference):Void { status_txt.text = "Cancelled"; fileStatus = 0; }; //When the file upload/download process started, //the onOpen() method is called, and passed a reference to the FileReference object fileRefListener.onOpen = function(fileRef:FileReference):Void { // status_txt.text = "Uploading "+fileRef.name; bar._xscale = 100; }; //The onProgress() method is called periodically during the file upload operation fileRefListener.onProgress = function(fileRef:FileReference, bytesLoaded:Number, bytesTotal:Number):Void { //setting the status bar function // status_txt.text = "Uploaded "+int(100*bytesLoaded/bytesTotal)+"%"; status_txt.text = fileRef.name; for (n=0; n<rand; n++) { rand = random(4); status_txt.text += "."; } bar._xscale = 100-(100*bytesLoaded/bytesTotal); }; //When the file upload/download operation is successfully complete, //the onComplete() method is called, and passed a reference to the FileReference object fileRefListener.onComplete = function(fileRef:FileReference):Void { status_txt.text = fileRef.name; gotoAndStop(3); if (paramType == 1) { imagePane.contentPath = "./uploadx/"+_root.postman.fid+"/"+fileRef.name; } bar._xscale = 0; fileStatus = 3; _parent.proceed(); }; //********************************* ERROR EVENT HANDLING *********************************// //This method will be called if and only if an upload fails because of an HTTP error fileRefListener.onHTTPError = function(fileRef:FileReference, error:Number) { status_txt.text = "Upload failed"; fileStatus = 2; bar._xscale = 0; _parent.proceed; }; //This method will be called if and only if a file input/output error occur fileRefListener.onIOError = function(fileRef:FileReference) { status_txt.text = "Upload failed"; fileStatus = 2; bar._xscale = 0; _parent.proceed; }; //This method will be called if and only if an upload fails because of a security error //9 out of 10 time this error occus is because of the user Flash8 player security settings fileRefListener.onSecurityError = function(fileRef:FileReference, errorString:String) { status_txt.text = "Upload failed"; fileStatus = 2; bar._xscale = 0; _parent.proceed; }; //****************************************************************************************// //attach Listener to the FileReference Object fileRef.addListener(fileRefListener); //button event for the browse button browseButn.onRelease = function() { //The browse function is the key, coz it displays a file-browsing dialog box //in which the user can select a local file to upload fileRef.browse([{description:fileDescription, extension:fileExtension}]); }; //event for the upload function startUpload() { if (fileStatus == 3) { _parent.proceed(); } else if (fileStatus == 1) { fileRef.upload("newload.php?&fid="+_root.postman.fid+"&"); } else { status_txt.text = "Not selected"; _parent.proceed(); } } Quote Link to comment Share on other sites More sharing options...
PFMaBiSmAd Posted October 27, 2009 Share Posted October 27, 2009 $HTTP_GET_VARS was depreciated almost 8 years ago, it has been turned off by default in php5, and it has been completely removed in php6. Use $_GET The php code is not checking for any of the possible upload errors - http://www.php.net/manual/en/features.file-upload.errors.php so it will be a little hard for anyone to tell you exactly why your code is not working for the movie files. I'll guess that if you added some error checking logic to your code that you would get an uploaded error value of 1, meaning that the file exceeded the upload_max_filesize setting. Quote Link to comment Share on other sites More sharing options...
davegfx Posted October 27, 2009 Author Share Posted October 27, 2009 Hi Thank you very much for your reply! I did some more investigating and it seems to be definitely be a file size setting. If i upload a movie under 2MB then everything is fine. If i try anything above 2mb then it doesn't work. Coincidentally, the document and image uploads are limited to files below 2mb, although I am unsure of where this is located in the code. Any idea? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.