tempnam() public static method

Obtain exclusive temporary file
public static tempnam ( string $dir, string $prefix, callable $cb ) : resource
$dir string Directory
$prefix string Prefix
$cb callable Callback (File)
return resource
示例#1
0
 /**
  * Process HTTP headers
  * @return boolean Success
  */
 protected function httpProcessHeaders()
 {
     $this->req->attrs->paramsDone = true;
     if (isset($this->req->attrs->server['HTTP_CONNECTION']) && preg_match('~(?:^|\\W)Upgrade(?:\\W|$)~i', $this->req->attrs->server['HTTP_CONNECTION']) && isset($this->req->attrs->server['HTTP_UPGRADE']) && strtolower($this->req->attrs->server['HTTP_UPGRADE']) === 'websocket') {
         if ($this->pool->WS) {
             $this->pool->WS->inheritFromRequest($this->req, $this);
         }
         return false;
     }
     $this->req = Daemon::$appResolver->getRequest($this->req, $this, isset($this->pool->config->responder->value) ? $this->pool->config->responder->value : null);
     if ($this->req instanceof \stdClass) {
         $this->endRequest($this->req, 0, 0);
         return false;
     } else {
         if ($this->pool->config->sendfile->value && (!$this->pool->config->sendfileonlybycommand->value || isset($this->req->attrs->server['USE_SENDFILE'])) && !isset($this->req->attrs->server['DONT_USE_SENDFILE'])) {
             $req = $this->req;
             FileSystem::tempnam($this->pool->config->sendfiledir->value, $this->pool->config->sendfileprefix->value, function ($fn) use($req) {
                 FileSystem::open($fn, 'wb', function ($file) use($req) {
                     $req->sendfp = $file;
                 });
                 $req->header('X-Sendfile: ' . $fn);
             });
         }
         $this->req->callInit();
     }
     return true;
 }
示例#2
0
 /**
  * Called when file upload started
  * @param  Input $in Input buffer
  * @return void
  */
 public function onUploadFileStart($in)
 {
     $this->freezeInput();
     FileSystem::tempnam(ini_get('upload_tmp_dir'), 'php', function ($fp) use($in) {
         if (!$fp) {
             $in->curPart['fp'] = false;
             $in->curPart['error'] = UPLOAD_ERR_NO_TMP_DIR;
         } else {
             $in->curPart['fp'] = $fp;
             $in->curPart['tmp_name'] = $fp->path;
         }
         $this->unfreezeInput();
     });
 }
示例#3
0
 /**
  * Start new session
  * @param  callable $cb Callback
  * @return void
  */
 protected function sessionStartNew($cb = null)
 {
     FileSystem::tempnam(session_save_path(), $this->sessionPrefix, function ($fp) use($cb) {
         if (!$fp) {
             call_user_func($cb, false);
             return;
         }
         $this->sessionFp = $fp;
         $this->sessionId = substr(basename($fp->path), strlen($this->sessionPrefix));
         $this->setcookie(ini_get('session.name'), $this->sessionId, ini_get('session.cookie_lifetime'), ini_get('session.cookie_path'), ini_get('session.cookie_domain'), ini_get('session.cookie_secure'), ini_get('session.cookie_httponly'));
         call_user_func($cb, true);
     });
 }