SAE使用Storage服务保存上传文件

SAE为了安全禁止了本地IO操作(SAE虽然禁止了IO写操作,但是并没有禁止fwrite,file_put_contents等写操作函数,使得上传文件等操作不能使用我们平时习惯用的方法,但也给出了很好的解决办法。

首先要在storage服务管理中新建一个domain,用来做文件存储的服务器,代码中使用的是名为upload的domain

<!--upload.html-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SAE Upload Files Example</title>
</head>
<body>
<form action="upload.php"  method="post" enctype="multipart/form-data">
<input type="file"  name="file" />
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>

<?php
//upload.php
date_default_timezone_set('Asia/Shanghai');

if (isset($_POST['submit'])) {
	if ($_FILES["file"]["error"] > 0) {
		echo "An error has occured: " . $_FILES["file"]["error"];
	} else {
		$upload_time = date("H-i-s");
		$file_name = $_FILES["file"]["name"];
		$sub_fix = strrpos($file_name,'.');
		$save_name = $upload_time.substr($file_name,$sub_fix);
		//组合成文件在storage某域名下的完整保存路径
		$save_path = date('Ymd').'/'.$save_name;
		$tmp_name = $_FILES['file']['tmp_name'];

		$storage = new SaeStorage();
		//使用域名为upload的storage服务
		$result = $storage->upload("upload",$save_path, $tmp_name);
		//获取此域名下存储文件的url访问路径
		$pic_url = $storage->getUrl("upload",$save_path);

		if (!$result) {
			echo "文件上传失败!";
		} else {
			echo "<img src=".$pic_url." />";
		}
	}
} else {
	echo "<script type='text/javascript'>window.location.href='upload.html'</script>";
}

?>

转载于:https://my.oschina.net/sallency/blog/387863

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值