Path: blob/master/src/applications/files/conduit/FileUploadConduitAPIMethod.php
12241 views
<?php12final class FileUploadConduitAPIMethod extends FileConduitAPIMethod {34public function getAPIMethodName() {5return 'file.upload';6}78public function getMethodDescription() {9return pht('Upload a file to the server.');10}1112protected function defineParamTypes() {13return array(14'data_base64' => 'required nonempty base64-bytes',15'name' => 'optional string',16'viewPolicy' => 'optional valid policy string or <phid>',17'canCDN' => 'optional bool',18);19}2021protected function defineReturnType() {22return 'nonempty guid';23}2425protected function execute(ConduitAPIRequest $request) {26$viewer = $request->getUser();2728$name = $request->getValue('name');29$can_cdn = (bool)$request->getValue('canCDN');30$view_policy = $request->getValue('viewPolicy');3132$data = $request->getValue('data_base64');33if ($data === null) {34throw new Exception(pht('Field "data_base64" must be non-empty.'));35}36$data = $this->decodeBase64($data);3738$params = array(39'authorPHID' => $viewer->getPHID(),40'canCDN' => $can_cdn,41'isExplicitUpload' => true,42);4344if ($name !== null) {45$params['name'] = $name;46}4748if ($view_policy !== null) {49$params['viewPolicy'] = $view_policy;50}5152$file = PhabricatorFile::newFromFileData($data, $params);5354return $file->getPHID();55}5657}585960