百度BAE使用ueditor 上传图片
研究BAE 也有一段时间了,但一直无法解决BAE 上传图片的问题。
在阅读了
http://blog.csdn.net/auver/article/details/10103789
和
http://www.thinkphp.cn/topic/5825.html
之后,经过一小段时间的修改,终于配置成功。
<?php /**
* Created by JetBrains PhpStorm.
* User: taoqili
* Date: 12-7-18
* Time: 上午10:42
*/
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ERROR | E_WARNING);
date_default_timezone_set("Asia/chongqing");
include "Uploader.class.php";
//上传图片框中的描述表单名称,
$title = htmlspecialchars($_POST['pictitle'], ENT_QUOTES);
$path = htmlspecialchars($_POST['dir'], ENT_QUOTES);
$globalConfig = include( "config.php" );
$imgSavePathConfig = $globalConfig[ 'imageSavePath' ]; //获取存储目录
if ( isset( $_GET[ 'fetch' ] ) ) { header( 'Content-Type: text/javascript' );
echo 'updateSavePath('. json_encode($imgSavePathConfig) .');';
return; } //上传配置
$config = array(
"savePath" => $imgSavePathConfig,
"maxSize" => 1000, //单位KB
"allowFiles" => array(".gif", ".png", ".jpg", ".jpeg", ".bmp")
); if ( empty( $path ) ) { $path = $config[ 'savePath' ][ 0 ]; } //上传目录验证
if ( !in_array( $path, $config[ 'savePath' ] ) ) {
//非法上传目录
echo '{"state":"\u975e\u6cd5\u4e0a\u4f20\u76ee\u5f55"}';
return;
} $config[ 'savePath' ] = $path . '/'; //生成上传实例对象并完成上传
$up = new Uploader("upfile", $config); /**
* 得到上传文件所对应的各个参数,数组结构
* array(
* "originalName" => "", //原始文件名
* "name" => "", //新文件名
* "url" => "", //返回的地址
* "size" => "", //文件大小
* "type" => "" , //文件类型
* "state" => "" //上传状态,上传成功时必须返回"SUCCESS"
* )
*/
$info = $up->getFileInfo(); // 上传成功后移动到bcs
function getFileDomain($bucket){
if(!IS_BAE) return '';
return 'http://'.HTTP_BAE_ENV_ADDR_BCS.'/'.strtolower($bucket);
}
function getFileExt($file_name){ // 获取文件扩展名
$extend =explode("." , $file_name);
$va=count($extend)-1;
return $extend[$va];
}
$tempFileName = tempnam(sys_get_temp_dir(),'tp_');
$sourceFileName = $info["url"];
file_put_contents($tempFileName, file_get_contents($sourceFileName));
$fileInfo = pathinfo($sourceFileName);
$srcFile = $tempFileName;
$ext = getFileExt($sourceFileName);
$fileExt = '.'.$ext;
$bucket='你自己的bucket';
$savePath = '/'.date('Ymd').'/'. uniqid().$fileExt;
try{
$bcs=new BaiduBCS();
$response=$bcs->create_object($bucket, $savePath,$srcFile,array('acl'=>BaiduBCS::BCS_SDK_ACL_TYPE_PUBLIC_READ));
if($response->isOK()){
$srcFile = getFileDomain($bucket) . $savePath;
//echo "<img src='{$srcFile}' /><br/>{$savePath}";
}
}catch(Exception $e){
die('failed');
}
$info["url"] = $srcFile; // 获取存储在bcs中文件的url,这个也是最后的url
/**
* 向浏览器返回数据json数据
* {
* 'url' :'a.jpg', //保存后的文件路径
* 'title' :'hello', //文件描述,对图片来说在前端会添加到title属性上
* 'original' :'b.jpg', //原始文件名
* 'state' :'SUCCESS' //上传状态,成功时返回SUCCESS,其他任何值将原样返回至图片上传框中
* }
*/ echo "{'url':'" . $info["url"] . "','title':'" . $title . "','original':'" . $info["originalName"] . "','state':'" . $info["state"] . "'}";
特别注意的是,既然这里返回的是一个完整的url,在ue的配置中就需要配置 “图片修正地址”
配置修改如下:
UEDITOR_HOME_URL : URL //图片上传配置区
,imageUrl:URL+"php/imageUp.php" //图片上传提交地址
,imagePath: " " //图片修正地址,引用了fixedImagePath,如有特殊需求,可自行配置
//,imagePath:URL + "php/" //图片修正地址,引用了fixedImagePath,如有特殊需求,可自行配置
//,imageFieldName:"upfile" //图片数据的key,若此处修改,需要在后台对应文件修改对应参数
图片修正地址中是一个空格,而不是空。
欢迎交流。
百度BAE使用ueditor 上传图片的更多相关文章
- ASP.Net中应用百度编辑器(UEditor)上传图片和上传附件失败-解决方案
第一步: 第二步: 第三步: 第四步:
- 百度ueditor上传图片时如何设置默认宽高度
百度ueditor上传图片时如何设置默认宽高度 一.总结 一句话总结:直接css或者js里面限制一下就好,可以用html全局限制一下图片的最大高度 直接css或者js里面限制一下就好,可以用html全 ...
- 百度UEditor上传图片-再总结一次
晚上,在继续开发BriefCMS,把百度UEditor上传图片的问题,给解决了,终于解决了. 公司极简版CMS.BriefCMS.个人官网,最近2个月,与百度UEditor厮杀了好久.最值得吐槽的,就 ...
- 百度ueditor 上传图片后如何设置样式
最近项目中遇到一个问题,UEditor上传图片后,在内容展示会修改图片样式.但是表情也是img标签,所以全局修改是有问题的, 所以只能着手修改一下插件的代码. 首先找到图片上传的服务器段文件.这里主要 ...
- BAE Flask UEditor 使用七牛云
1. 配置BAE支持七牛云的SDK BAE的python requirements当然不支持竞争对手了. 解决方法: 把qiniu这个文件包直接放置在你项目的目录中(与其他app同级) 运行会发现缺少 ...
- 在ASP.NET Core中使用百度在线编辑器UEditor
在ASP.NET Core中使用百度在线编辑器UEditor 0x00 起因 最近需要一个在线编辑器,之前听人说过百度的UEditor不错,去官网下了一个.不过服务端只有ASP.NET版的,如果是为了 ...
- 百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程之更改图片和附件上传路径
本文是接上一篇博客,如果有疑问请先阅读上一篇:百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程 默认UEditor上传图片的路径是,编辑器包目录里面的net目录下 下面就演示如 ...
- UEditor上传图片到七牛云储存(java)
我们的网站一般放在虚拟空间或者服务器上,图片如果存在本地目录,会占用很多空间和流量,还增加了负担,好的办法是把图片存放到云储存服务里面,平时用url去拿 云储存:普遍说又拍云和七牛比较好,看到七牛免费 ...
- UEditor上传图片到七牛云储存(c#)
我们的网站一般放在虚拟空间或者服务器上,图片如果存在本地目录,会占用很多空间和流量,还增加了负担,好的办法是把图片存放到云储存服务里面,平时用url去拿 云储存:普遍说又拍云和七牛比较好,看到七牛免费 ...
随机推荐
- Fedora下使用minicom及USB串口线
一.minicom Fedora不像以前的RedHat,不能直接输入minicom回车,因为在目录/dev/下面没有modem这个子目录,而minicom的运行默认是有这个目录的,所以直接敲是不行的. ...
- librbd 分析
一.概述
- 安装gitlab遇到的问题
参考文章: http://www.pickysysadmin.ca/2013/03/25/how-to-install-gitlab-5-0-on-centos-6/ 一直跟着这篇文章做,还挺顺利的, ...
- Linux引导启动程序 - boot
主要描述 boot/目录中的三个汇编代码文件,见列表 3-1 所示.正如在前一章中提到的,这三个 文件虽然都是汇编程序,但却使用了两种语法格式.bootsect.s 和 setup.s 采用近似于 I ...
- Loader Lock引起的一个Bug
在Windows中,让程序模块化实现的一种方式,就是让事实上现为动态链接库. 然后在主程序启动的时候隐式或者显示的去载入动态链接库.可是假设不恰当的编写动态链接库的DllMain函数,将会引起意想不到 ...
- CentOS安装OpenResty(Nginx+Lua)开发环境
一.简介 OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极高 ...
- debian 8 解压安装mysql(版本5.7.19)
debian 8 解压安装mysql(版本5.7.19)一.下载 根据目标主机的型号官网下载mysql安装包如: mysql-server_5.7.19-1debian8_amd64.deb-bund ...
- 冒泡,setinterval,背景图的div绑定事件,匿名函数问题探究
1.会冒泡到兄弟元素么? $(function(){ $("#a").click(function(){alert("a")}) $("#b" ...
- virtualbox 最小化安装centos7 配置双网卡(nat和桥接)记录----已经过期
该文章已经过期 请参考另一篇文章:virtualbox 安装centos7 配置桥接网卡,实现主机和虚拟机互通,虚拟机可以访问外网,解决无法上网问题 先说明一下为什么要配置双网卡? 配置nat ...
- js前台取用后台传递过来的map集合方式
在处理有些特殊需求的时候,我们需要在前台页面的js中获取后台传递过来的map集合类型的参数,并且进行调用,代码如下: 在后台我们拼装出如下的集合: Map<String,Grade> gr ...