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.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

DataObjectManager Module /

Discuss the DataObjectManager module, and the related ImageGallery module.

Moderators: martimiz, UncleCheese, Sean, Ed, biapar, Willr, Ingo, swaiba

Uploadify: Several different errors with same config


Go to End


3 Posts   1722 Views

Avatar
oleze

Community Member, 65 Posts

16 September 2010 at 6:02am

Edited: 16/09/2010 6:04am

I'm getting several problems with the Uploadify-Module on the same page with the same code.
I wrote two new Resources:

mysite/code/BrochureResource.php

<?php 
class BrochureResource extends DataObject
{
    static $db = array (
    	'Title' => 'Text'
    );
 
    static $has_one = array (
        'Page' => 'Page',
        'Attachment' => 'File'
    );

}

and mysite/code/SimulationResource.php
<?php 
class SimulationResource extends DataObject
{
    static $db = array (
    	'Title' => 'Text'
    );
 
    static $has_one = array (
        'Page' => 'Page',
        'Attachment' => 'File'
    );

}

In my ReferencePage.php I have the following code:
class ReferencePage extends Page {
   static $db = array(
      ...    
   );
   static $has_one = array(
   		...
   		'Simulation' => 'SimulationResource',
   		'Brochure' => 'BrochureResource',
   		'LayoutPhoto' => 'Image'
   );

  function getCMSFields() {
      $fields = parent::getCMSFields();
      
         
      // Adding a Brochure
      		$brochure = new FileUploadField(_t('VEHICLEPAGE.BROCHURE','Brochure.Attachment'));
 	  			$brochure->removeFolderSelection();
 				$brochure->uploadFolder = 'brochure/'.$this->URLSegment;
 				$brochure->setFileTypes(array('pdf'),_t('VEHICLEPAGE.PDFS','PDFs'));
 			$fields->addFieldToTab("Root.Content.Main", $brochure, 'Content');
 				
 	  // Adding a Simulation
 	 		$simulation = new FileUploadField(_t('VEHICLEPAGE.SIMULATION','Simulation.Attachment'));
 	  			$simulation->removeFolderSelection();
 				$simulation->uploadFolder = 'simulations/'.$this->URLSegment;
 				$simulation->setFileTypes(array('exe'),_t('VEHICLEPAGE.EXES','EXEs'));
 			$fields->addFieldToTab("Root.Content.Main", $simulation, 'Content');

// Adding a Layout-Image
      		$layoutphoto = new ImageUploadField(_t('VEHICLEPAGE.LAYOUTPHOTO','LayoutPhoto'));
      			$layoutphoto->removeFolderSelection();
 				$layoutphoto->uploadFolder = 'layout_images/'.$this->URLSegment;
 			$fields->addFieldToTab("Root.Content.Main", $layoutphoto, $techspecs);


....
....

	   // Return fields to CMS_Main
      		return $fields;
   }
   
   
}

But when I try to upload files with the fields, I get on the first (Brochure) an IO-Error, the second one (Simulation) uploads the file and shows an HTTP-Error when using EXE-Files (if I allow different ones, this field works) and the third (Layout-Image) lets me pick a file but doesn't upload it without showing any errors.

Does somebody (Uncle Cheese) have an idea? (I'm using the trunk builds from today)

Avatar
UncleCheese

Forum Moderator, 4102 Posts

16 September 2010 at 6:16am

OK, lots going on here.

First, most hosting providers won't allow you to upload executable files to a directory that is writable by the public. So I would forget the "exe" or "php" files.. That will almost always throw a 500.

Second, your upload fields are not constructed properly. You're missing the first argument, which should be the relation that the upload field is managing. You're passing a translated string as the first argument. That should come second.

--------------------
SilverStripe tips, tutorials, screencasts and more: http://www.leftandmain.com

Avatar
oleze

Community Member, 65 Posts

16 September 2010 at 6:39am

Thank you, now everything works properly. Seems MAMP doesn't allow exes with standard-config. I'll test it on the live-server later.