コード例 #1
0
ファイル: actions.class.php プロジェクト: oparoz/thebuggenie
 public function runUploadFile(TBGRequest $request)
 {
     if (!isset($_SESSION['upload_files'])) {
         $_SESSION['upload_files'] = array();
     }
     $files = array();
     $files_dir = TBGSettings::getUploadsLocalpath();
     foreach ($request->getUploadedFiles() as $key => $file) {
         $new_filename = TBGContext::getUser()->getID() . '_' . NOW . '_' . basename($file['name']);
         if (TBGSettings::getUploadStorage() == 'files') {
             $filename = $files_dir . $new_filename;
         } else {
             $filename = $file['tmp_name'];
         }
         TBGLogging::log('Moving uploaded file to ' . $filename);
         if (TBGSettings::getUploadStorage() == 'files' && !move_uploaded_file($file['tmp_name'], $filename)) {
             TBGLogging::log('Moving uploaded file failed!');
             throw new Exception(TBGContext::getI18n()->__('An error occured when saving the file'));
         } else {
             TBGLogging::log('Upload complete and ok, storing upload status and returning filename ' . $new_filename);
             $content_type = TBGFile::getMimeType($filename);
             $file_object = new TBGFile();
             $file_object->setRealFilename($new_filename);
             $file_object->setOriginalFilename(basename($file['name']));
             $file_object->setContentType($content_type);
             $file_object->setDescription('');
             $file_object->setUploadedBy(TBGContext::getUser());
             if (TBGSettings::getUploadStorage() == 'database') {
                 $file_object->setContent(file_get_contents($filename));
             }
             $file_object->save();
             return $this->renderJSON(array('file_id' => $file_object->getID()));
         }
     }
     return $this->renderJSON(array('error' => $this->getI18n()->__('An error occurred when uploading the file')));
 }