道招

新浪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 "上传失败";
}
更新时间:
上一篇:evernote(印象笔记)开始测试手写功能了下一篇:windows版emacs中文乱码

相关文章

wordpress上传图片失败解决方案

问题一:博客将 WordPress 升级后, 发现上传图片失败. 报错信息的大概意思是不能创建目录和上传文件, 因为上层目录没有写权限。 以下相关问题截图. 我的第一反应是修改目录的权限 阅读更多…

一行代码,轻松将浏览器变成临时编辑器

这是 Jose 在CoderWall 分享的一个 小技巧 :在浏览器地址栏中输入一行代码: [code lang="php"]data:text/html, &amp;lt;html content 阅读更多…

还原混淆的javascript代码

今天在浏览逍遥网(www.xoyo.com)的时候,在页面底部发现了网站的用户行为采集代码 &lt;script src=”http://counter.kds.xoyo.com/kds2_r 阅读更多…

关注道招网公众帐号