研究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 上传图片的更多相关文章

  1. ASP.Net中应用百度编辑器(UEditor)上传图片和上传附件失败-解决方案

    第一步: 第二步: 第三步: 第四步:

  2. 百度ueditor上传图片时如何设置默认宽高度

    百度ueditor上传图片时如何设置默认宽高度 一.总结 一句话总结:直接css或者js里面限制一下就好,可以用html全局限制一下图片的最大高度 直接css或者js里面限制一下就好,可以用html全 ...

  3. 百度UEditor上传图片-再总结一次

    晚上,在继续开发BriefCMS,把百度UEditor上传图片的问题,给解决了,终于解决了. 公司极简版CMS.BriefCMS.个人官网,最近2个月,与百度UEditor厮杀了好久.最值得吐槽的,就 ...

  4. 百度ueditor 上传图片后如何设置样式

    最近项目中遇到一个问题,UEditor上传图片后,在内容展示会修改图片样式.但是表情也是img标签,所以全局修改是有问题的, 所以只能着手修改一下插件的代码. 首先找到图片上传的服务器段文件.这里主要 ...

  5. BAE Flask UEditor 使用七牛云

    1. 配置BAE支持七牛云的SDK BAE的python requirements当然不支持竞争对手了. 解决方法: 把qiniu这个文件包直接放置在你项目的目录中(与其他app同级) 运行会发现缺少 ...

  6. 在ASP.NET Core中使用百度在线编辑器UEditor

    在ASP.NET Core中使用百度在线编辑器UEditor 0x00 起因 最近需要一个在线编辑器,之前听人说过百度的UEditor不错,去官网下了一个.不过服务端只有ASP.NET版的,如果是为了 ...

  7. 百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程之更改图片和附件上传路径

    本文是接上一篇博客,如果有疑问请先阅读上一篇:百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程 默认UEditor上传图片的路径是,编辑器包目录里面的net目录下 下面就演示如 ...

  8. UEditor上传图片到七牛云储存(java)

    我们的网站一般放在虚拟空间或者服务器上,图片如果存在本地目录,会占用很多空间和流量,还增加了负担,好的办法是把图片存放到云储存服务里面,平时用url去拿 云储存:普遍说又拍云和七牛比较好,看到七牛免费 ...

  9. UEditor上传图片到七牛云储存(c#)

    我们的网站一般放在虚拟空间或者服务器上,图片如果存在本地目录,会占用很多空间和流量,还增加了负担,好的办法是把图片存放到云储存服务里面,平时用url去拿 云储存:普遍说又拍云和七牛比较好,看到七牛免费 ...

随机推荐

  1. SQL数据缓存依赖总结

    以前只听过SQL server数据缓存依赖,但一直没使用,由于项目需要,才研究了一番,发现了一个很诡异的问题,竟然是一个操作顺序问题导致的. SQL server数据缓存依赖有两种实现模式,轮询模式, ...

  2. C++题目一道: 重载`->': 您真的懂成员访问运算符的重载吗?

    原题目在这里: http://hi.baidu.com/shilyx/item/672736e14a14a90c64db003a 要求: //给出类Test的定义和实现,使程序编译通过, //并且ma ...

  3. Android的API版本和名称对应关系

    Android版本名和API Level关系全称 Android的版本 Android版本名称Code name Android的API level Android 1.0 (API level 1) ...

  4. WARNING: The host 'r6' could not be looked up with /usr/local/mysql/bin/resolveip.

    初始化MySQL数据库提示以下信息: # /usr/local/mysql/scripts/mysql_install_db \ > --defaults-file=/etc/my.cnf \ ...

  5. PMD-Java 代码检查工具对 error 和 warning 的配置

    PMD是一款优秀的Java程序代码检查工具.该它可以检查Java代码中是否含有未使用的变量.是否含有空的抓取块.是否含有不必要的对象等. 但在使用过程中,你会项目中发现存在大量的 PMD 插件报出的 ...

  6. php网站被挂木马修复方法总结

    在linux中我们可以使用命令来搜查木马文件,到代码安装目录执行下面命令 代码如下 复制代码 find ./ -iname "*.php" | xargs grep -H -n & ...

  7. Gituhb 上一些值得攻读的玩具代码库

    https://github.com/sindresorhus/globby https://github.com/dylansmith/node-exif-renamer https://githu ...

  8. 创建多模块springcloud应用eureka server和client和消费端demo

    使用环境是 STS + maven 1 创建父级 项目,springcloud-demo1 new -> maven project -> 按照要求进行配置即可.然后删除 src目录,因为 ...

  9. java打印条形码Code128C

    生成编码类型为Code128C的条形码的javaCODE: package test; import java.awt.Color; import java.awt.Graphics; import ...

  10. vim的全局替换[zz]&把字符替换成回车

    本文出自   http://blog.csdn.net/shuangde800   本文是在学习<使用vi编辑器, Lamb & Robbins编著>时在所记的笔记.   本文内容 ...