/** * Action to handle upload of a single file * * @param SS_HTTPRequest $request * @return SS_HTTPResponse * @return SS_HTTPResponse */ public function upload(SS_HTTPRequest $request) { // Find the first set of upload data that looks like it came from an // UploadField. // NOTE(Jake): There is only the SecurityID and the 'upload' data as this is done // in it's own AJAX request, not sent along with all the other data. foreach ($request->postVars() as $key => $value) { // todo(Jake): Test SS 3.1 compatibility // NOTE(Jake): Only tested in SS 3.2, UploadField::upload data may not look like this in 3.1... if ($value && isset($value['name']) && isset($value['type']) && isset($value['tmp_name'])) { // NOTE(Jake): UploadField requires this FormField to be the correct name so it can retrieve // the file information from postVar. So detect the first set of data that seems // like upload info and use it. $this->setName($key); break; } } return parent::upload($request); }