public function runUploadFile(framework\Request $request) { if (!isset($_SESSION['upload_files'])) { $_SESSION['upload_files'] = array(); } $files = array(); $files_dir = framework\Settings::getUploadsLocalpath(); foreach ($request->getUploadedFiles() as $key => $file) { $file['name'] = str_replace(array('[', ']'), array('(', ')'), $file['name']); $new_filename = framework\Context::getUser()->getID() . '_' . NOW . '_' . basename($file['name']); if (framework\Settings::getUploadStorage() == 'files') { $filename = $files_dir . $new_filename; } else { $filename = $file['tmp_name']; } framework\Logging::log('Moving uploaded file to ' . $filename); if (framework\Settings::getUploadStorage() == 'files' && !move_uploaded_file($file['tmp_name'], $filename)) { framework\Logging::log('Moving uploaded file failed!'); throw new \Exception(framework\Context::getI18n()->__('An error occured when saving the file')); } else { framework\Logging::log('Upload complete and ok, storing upload status and returning filename ' . $new_filename); $content_type = entities\File::getMimeType($filename); if (framework\Settings::getUploadStorage() == 'database') { $file_object_id = entities\File::getB2DBTable()->saveFile($new_filename, basename($file['name']), $content_type, null, file_get_contents($filename)); } else { $file_object_id = entities\File::getB2DBTable()->saveFile($new_filename, basename($file['name']), $content_type); } return $this->renderJSON(array('file_id' => $file_object_id)); } } return $this->renderJSON(array('error' => $this->getI18n()->__('An error occurred when uploading the file'))); }