Qiniu\Storage\ResumeUploader::upload PHP Method

upload() public method

上传操作
public upload ( )
    public function upload()
    {
        $uploaded = 0;
        while ($uploaded < $this->size) {
            $blockSize = $this->blockSize($uploaded);
            $data = fread($this->inputStream, $blockSize);
            if ($data === false) {
                throw new \Exception("file read failed", 1);
            }
            $crc = \Qiniu\crc32_data($data);
            $response = $this->makeBlock($data, $blockSize);
            $ret = null;
            if ($response->ok() && $response->json() != null) {
                $ret = $response->json();
            }
            if ($response->statusCode < 0) {
                list($bakHost, $err) = $this->config->zone->getBackupUpHostByToken($this->upToken);
                if ($err != null) {
                    return array(null, $err);
                }
                $this->host = $bakHost;
            }
            if ($response->needRetry() || !isset($ret['crc32']) || $crc != $ret['crc32']) {
                $response = $this->makeBlock($data, $blockSize);
                $ret = $response->json();
            }
            if (!$response->ok() || !isset($ret['crc32']) || $crc != $ret['crc32']) {
                return array(null, new Error($this->currentUrl, $response));
            }
            array_push($this->contexts, $ret['ctx']);
            $uploaded += $blockSize;
        }
        return $this->makeFile();
    }

Usage Example

Esempio n. 1
0
 /**
  * 上传文件到七牛
  *
  * @param $upToken    上传凭证
  * @param $key        上传文件名
  * @param $filePath   上传文件的路径
  * @param $params     自定义变量,规格参考
  *                    http://developer.qiniu.com/docs/v6/api/overview/up/response/vars.html#xvar
  * @param $mime       上传数据的mimeType
  * @param $checkCrc   是否校验crc32
  *
  * @return array[]    包含已上传文件的信息,类似:
  *                                              [
  *                                                  "hash" => "<Hash string>",
  *                                                  "key" => "<Key string>"
  *                                              ]
  */
 public function putFile($upToken, $key, $filePath, $params = null, $mime = 'application/octet-stream', $checkCrc = false)
 {
     $file = fopen($filePath, 'rb');
     if ($file === false) {
         throw new \Exception("file can not open", 1);
     }
     $params = self::trimParams($params);
     $stat = fstat($file);
     $size = $stat['size'];
     if ($size <= Config::BLOCK_SIZE) {
         $data = fread($file, $size);
         fclose($file);
         if ($data === false) {
             throw new \Exception("file can not read", 1);
         }
         return FormUploader::put($upToken, $key, $data, $params, $mime, $checkCrc);
     }
     $up = new ResumeUploader($upToken, $key, $file, $size, $params, $mime, $checkCrc);
     return $up->upload();
 }
All Usage Examples Of Qiniu\Storage\ResumeUploader::upload