Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

All other Modules /

Discuss all other Modules here.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

SWFUpload Issue


Go to End
Reply


25 Posts   2749 Views

Avatar
tbarho

Community Member, 41 Posts

21 March 2010 at 7:06am

But alas, still nothing is happening, I just get the generic 500 error. Here is my code. I haven't changed anything out of the box with SWFUpload, except setting debug to true in swfupload/_config.php:

* swfupload/code/SWFUploadControls.php (as is, out of the box)

class SWFUploadControls extends Controller
{
   public static $image_class = "Image";
   public static $file_class = "File";
   
   public function handleswfupload()
   {
      if (isset($_FILES["swfupload_file"]) && is_uploaded_file($_FILES["swfupload_file"]["tmp_name"])) {
         $ext = strtolower(end(explode('.', $_FILES['swfupload_file']['name'])));
         $class = in_array($ext, array('jpg','jpeg','gif','png')) ? self::$image_class : self::$file_class;
         $file = new $class();
         $u = new Upload();
         $dir = SWFUploadConfig::get_var('default_upload_dir');
         if(!$dir) $dir = "Uploads";
         $u->loadIntoFile($_FILES['swfupload_file'], $file, $dir);
         $file->write();         
         echo $file->ID;
      }
      else {
         echo ' '; // return something or SWFUpload won't fire uploadSuccess
      }
      
   }
}

* ssprojects/code/MessageForm.php (my custom form subclass)

class MessageForm extends Form
{
function __construct($controller, $name, $id = 0)
{
SWFUploadConfig::addFileTypes(array(
'pdf'
));

$fields = singleton('Message')->getFrontEndFields();

$fields->push(new HiddenField('ProjectId', 'ProjectId', $id));
$fields->push(new SWFUploadField($name, 'Files', 'Upload Message Files', array('file_upload_limit' => '1')));

$validators = new RequiredFields('Body');

$actions = new FieldSet(new FormAction('submit', 'Save Message'));

parent::__construct($controller, $name, $fields, $actions, $validators);
}
}

* ssprojects/code/Project.php (my controller and the method that gets the form)

class Project_Controller extends Page_Controller
{
function MessageForm($id = 0)
{
$params = $this->getURLParams();

if ($params['ID']) {
$id = (int)$params['ID'];
}

return new MessageForm($this, 'MessageForm', $id);

}
}

As I understand it, this should at least save a file to the Uploads directory, correct?

Go to Top