[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/files/conduit/ -> FileUploadConduitAPIMethod.php (source)

   1  <?php
   2  
   3  final class FileUploadConduitAPIMethod extends FileConduitAPIMethod {
   4  
   5    public function getAPIMethodName() {
   6      return 'file.upload';
   7    }
   8  
   9    public function getMethodDescription() {
  10      return 'Upload a file to the server.';
  11    }
  12  
  13    public function defineParamTypes() {
  14      return array(
  15        'data_base64' => 'required nonempty base64-bytes',
  16        'name' => 'optional string',
  17        'viewPolicy' => 'optional valid policy string or <phid>',
  18        'canCDN' => 'optional bool',
  19      );
  20    }
  21  
  22    public function defineReturnType() {
  23      return 'nonempty guid';
  24    }
  25  
  26    public function defineErrorTypes() {
  27      return array(
  28      );
  29    }
  30  
  31    protected function execute(ConduitAPIRequest $request) {
  32      $data = $request->getValue('data_base64');
  33      $name = $request->getValue('name');
  34      $can_cdn = $request->getValue('canCDN');
  35      $view_policy = $request->getValue('viewPolicy');
  36  
  37      $user = $request->getUser();
  38      $data = base64_decode($data, $strict = true);
  39  
  40      if (!$view_policy) {
  41        $view_policy = PhabricatorPolicies::getMostOpenPolicy();
  42      }
  43  
  44      $file = PhabricatorFile::newFromFileData(
  45        $data,
  46        array(
  47          'name' => $name,
  48          'authorPHID' => $user->getPHID(),
  49          'viewPolicy' => $view_policy,
  50          'canCDN' => $can_cdn,
  51          'isExplicitUpload' => true,
  52        ));
  53  
  54      return $file->getPHID();
  55    }
  56  
  57  }


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1