您的位置:首页 > 编程语言 > PHP开发

SAE 版Thinkphp 加入xheditor 图片上传

2012-03-22 10:39 204 查看
public function eUpload()
{
$date_path=date("Ym");
import("ORG.Net.UploadFile");
$upload=new UploadFile();
$upload->maxSize  = 2097152;
$upload->allowExts = array('jpg', 'gif', 'png', 'jpeg');
$upload->saveRule='time';
$upload->savePath='./Public/upload/';

$s=Think::instance('SaeStorage');
$url=rtrim($s->getUrl('Public',''),'/');

if(!$upload->upload()){

if(isset($_SERVER['HTTP_CONTENT_DISPOSITION'])&&preg_match('/attachment;\s+name="(.+?)";\s+filename="(.+?)"/i',$_SERVER['HTTP_CONTENT_DISPOSITION'],$info))
{

$file5name=date('Ymdhis');
$localName=urldecode($info[2]);
$fileInfo=pathinfo($localName);
$extension=$fileInfo['extension'];
$upExt='jpg,jpeg,gif,png';
$tempfilename=SAE_TMP_PATH.'/'.$file5name.'.tmp';

file_put_contents($tempfilename,file_get_contents("php://input"));

if(preg_match('/'.str_replace(',','|',$upExt).'/i',$extension))
{
$bytes=filesize($tempfilename);
if($bytes> 2097152)
{
$err='上传的文件不能大于2M';
$msg="{'url':'','localname':'','id':'1'}";
}
else
{
file_put_contents('saestor://public/upload/'.$file5name.'.'.$extension,file_get_contents("php://input"));

$targetpath=$url."/upload/".$file5name.'.'.$extension;

$msg="{'url':'".$this->jsonString($targetpath)."','localname':'".$this->jsonString($file5name.'.'.$extension)."','id':'1'}";

}

}
else{
$err='上传文件扩展名必需为:'.$upExt;
}

}

else
{

$err=$upload->getErrorMsg();

}

}
else{
$info =  $upload->getUploadFileInfo();

$targetpath=$url."/upload/".$info[0]['savename'];

$msg="{'url':'".$this->jsonString($targetpath)."','localname':'".$this->jsonString($info[0]['savename'])."','id':'1'}";

}

echo "{'err':'".$this->jsonString($err)."','msg':".$msg."}";

}

public function jsonString($str)
{
return preg_replace("/([\\\\\/'])/",'\\\$1',$str);
}


xheditor 的搭建一样的,但是上传代码 在SAE 里面 使用上面的代码便可在编辑器里面上传图片,首先在一个控制类中 添加以上代码 我是在

PublicAction 控制器中添加的,在使用xheditor 的时候 img上传路径使用 /App(你应用名称)/index.php/Public/eUpload/ 就可以了,在IE浏览器下面没什么问题,html5的环境可能有点小问题不过不影响使用。希望高手指点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: