道招

新浪sae上传图片的方法

如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!

新浪sae上传图片的方法

自从上次把百度的bae里面的应用删除了,再次申请时收到提示BAE资源不足,正在扩容中,请等候下一批就很郁闷,然后转到新浪的sae了。查看其api的第一件是就是看看它支持如何上传图片,因为这个功能对我来说很重要,如果提供的方式不适合我,我也就没有必要再用了。 看了看sae给出的示例代码。 第一种、通过利用表单上传,这种适用于前台,上用户点击上传。 做一个 uplaod.html,代码如下:

<form action="upload.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>

sae上传图片upload.php的代码如下:

<?php
$s = new SaeStorage();
if ($_FILES["file"]["error"] > 0){
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}else{
if( $s->upload( "4wp" , "test.jpg" , $_FILES["file"]["tmp_name"]) ){ //4wp是sae里面的bucket,test.jpg是最后保存的文件名
echo "上传成功";
}else{
echo "上传失败";
}
}
?>

但是我们经常需要将远程的图片上传到sae的bucket里面这么办?新浪给出的api也没有这个功能啊。我们只有变通一下了,先将远程图片下载到本地,再将它上传至bucket。如果网友有更好的办法,请不吝赐教。 第二种、远程图片上传 因为新浪没有给出直接上传远程图片的api,但是给出了另外的解决方案。我们通过获取文件的二进制数据来达到目的。新浪允许我们用file_put_contents,不能用fopen之类的。

<?php
$s = new SaeStorage();
ob_start();
readfile("http://img.baidu.com/img/baike/logo-baike.png");
$img = ob_get_contents();
ob_end_clean();
$size = strlen($img);
file_put_contents(SAE_TMP_PATH .'/bd.jpg' , $img );

if( $s->upload( "4wp" , "test.jpg" ,SAE_TMP_PATH .'/bd.jpg') ){
echo "上传成功";
}else{
echo "上传失败";
}
更新时间:
上一篇:下一篇:

相关文章

关注道招网公众帐号
道招开发者二群