PHP 将Base64图片保存到 Sae storage

<?php
    $file_dir='tu/'.date("Y/m/d").'/';
    $fileName=create_guid();
    $storage = new SaeStorage();
    $domain = 'uploads';
    $destFileName = $file_dir.$fileName;
    //$srcFileName = $tempFile;
    $attr = array('encoding'=>'gzip');

    //保存base64字符串为图片
    //匹配出图片的格式
    $base64_image_content=$_REQUEST["urls"];
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)){
  $type = $result[2];
  $ex_file = ".{$type}";  
  $destFileName=$destFileName.$ex_file;
  //echo str_replace($result[1], '', $base64_image_content);
  $file_content=base64_decode(str_replace($result[1], '', $base64_image_content));
  //$result = $storage->upload($domain,$destFileName,$file_content);
  
  $storage->write( $domain , $destFileName , $file_content );
  $result=$storage->getUrl($domain,$destFileName);
  if(!$result) {  
    //失败
    echo '';
  }else{
      //成功
     echo $result; 
  }
}else{
    
    echo $base64_image_content;
    
}
function create_guid() {
    $charid = strtoupper(md5(uniqid(mt_rand(), true)));
    $hyphen = chr(45);// "-"
    $uuid =''// chr(123)// "{"
    .substr($charid, 0, 8).$hyphen
    .substr($charid, 8, 4).$hyphen
    .substr($charid,12, 4).$hyphen
    .substr($charid,16, 4).$hyphen
    .substr($charid,20,12);
    //.chr(125);// "}"
    return $uuid;
}
?>

 

posted @ 2015-11-24 15:53  Mr. Hu  阅读(416)  评论(0编辑  收藏  举报
Map