コード例 #1
0
ファイル: Main.php プロジェクト: nrensen/thebuggenie
 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')));
 }