新浪云实现上传缩略图

Posted 名扬博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新浪云实现上传缩略图相关的知识,希望对你有一定的参考价值。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
<html>  
<head>  
<title>ZwelL图片上传程序</title>  
</head>  
  <form enctype="multipart/form-data" method="post" name="upform">  
  <input name="upfile" type="file">  
  <input type="submit" value="上传">
  </form>  
<?php 
function Outputsmallimage($src,$w,$smallscr)
{
  $temp=pathinfo($src);
  $name=$smallscr;//文件名
  $dir=$temp["dirname"];//文件所在的文件夹
  $extension=$temp["extension"];//文件扩展名
  $savepath="Smallimages/{$name}";//缩略图保存路径,新的文件名为*.thumb.jpg
  $info=getimagesize($src);
  $width=$info[0];//获取图片宽度
  $height=$info[1];//获取图片高度
  $type=$info[2];
    switch($type){
      case 1:$im=imagecreatefromgif($src);break;
      case 2:$im=imagecreatefromjpeg($src);break;
      case 3:$im=imagecreatefrompng($src);break;
      default:break;
    }
 if ($w == 385) {//此处是对缩略图的比例调整,也可自己定义规则
      $h = 500;
    } elseif ($w == 225) {
      $h = 300;
    } elseif ($w == 75) {
      $h = 100;
    }
 $temp_img=imagecreatetruecolor($w,$h);//创建画布
 imagecopyresized($temp_img,$im,0,0,0,0,$w,$h,$width,$height);
 $s = new SaeStorage();
ob_start(); imagejpeg($temp_img); $imgstr = ob_get_contents(); $s->write(‘image1234‘,$savepath,$imgstr); ob_end_clean(); imagedestroy($im); return "saestor://image1234/".$savepath; }
 function create_guid() {
$charid = strtoupper(md5(uniqid(mt_rand(), true)));
$hyphen = chr(45);// "-"
$uuid =
substr($charid, 0, 8)
.substr($charid, 8, 4)
.substr($charid,12, 4)
.substr($charid,16, 4)
;
return $uuid;
}
if ($_SERVER[‘REQUEST_METHOD‘] == ‘POST‘)  
{  
    echo "\n上传开始时间:".date(‘y-m-d h:i:s‘,time())."\n";
    $destination_folder="saestor://image1234/Updateimg/"; //上传文件路径 需要在新浪云上创建Storage
    $file = $_FILES["upfile"];  
    $filename=$file["tmp_name"];  
    $image_size = getimagesize($filename);  
    $pinfo=pathinfo($file["name"]);  
    $ftype=$pinfo[‘extension‘];  
    $imagebig=create_guid().".".$ftype;
    $imagesmall=create_guid().".".$ftype;
    $bucket = "w376161501";
    $object="Ionic/Imagebig/".$imagebig; 
try{
if(move_uploaded_file ($filename, $destination_folder.$imagebig))//参数为文件流和存储的位置以及名称
{
echo "原图片上传成功";
}
    $path=Outputsmallimage($filename,225,$imagesmall);  
    } 
catch (OssException $e) {
    echo $e;
    } 
    //unlink($path); 用于删除缩略图
}
?>
</body>  
</html>  

 *新浪云上imagegif不支持Wrapper,即imageif,imagejpeg,imagepan不适应了。需要写到缓冲区ob_start();再通过saestorage写入stor

   *需要在新浪云上申请Storage(免费)

    另一种方法参考链接:http://blog.csdn.net/yangyun_1999/article/details/20377989#comments

    其他新浪云应用的文件读写:http://blog.csdn.net/liuqiyao_01/article/details/8551274(参考价值比较大)

以上是关于新浪云实现上传缩略图的主要内容,如果未能解决你的问题,请参考以下文章

Js实现input上传图片并显示缩略图

请问有大神知道C#怎么获取上传的文档的缩略图吗?

用户头像上传及缩略图

Android得到视频缩略图

上传视频和缩略图 - YouTube Data API Python

使用FileUpload控件上传图片并自动生成缩略图自动生成带文字和图片的水印图