研究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. C语言终极面试及答案分析

    第一部分:基本概念及其它问答题 .关键字static的作用是什么? 这个简单的问题很少有人能回答完全.在C语言中,关键字static有三个明显的作用: ). 在函数体,一个被声明为静态的变量在这一函数 ...

  2. Python学习笔记(七)—— 循环

    一.for ... in ... 循环 1.语法 names = ['Michael', 'Bob', 'Tracy'] for name in names: print(name) (1)需要有冒号 ...

  3. 使用iTextSharp修改PDF文件(一)

    这个iTextSharp确实是个好东西,可以创建.读取PDF格式的文档,虽然我的需求比较简单,但我首先还是基本上.完整地看完了它的相关文档,不喜欢英文的同志,可以搜索一篇<用C#制作PDF文件全 ...

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

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

  5. android 4.x环境搭建

    一.Android搭建开发环境 (一).工具准备 原文地址:http://www.open-open.com/lib/view/open1386252535564.html 1.下载JDK JDK即J ...

  6. pingback协议与traceback协议的区别

    wordpress 的 pingback协议与traceback协议区别

  7. PostgreSQL创建数据库用户

    注:版本不同,命令的执行路径可能有些不同. 一. 创建数据库用户freeswitch sudo -u postgres /usr/pgsql-9.5/bin/createuser -s -e free ...

  8. [转]Filter 过滤器

    1.简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 ...

  9. C#基础第三天-作业-集合-冒泡排序-模拟名片

    1.名片:用两种集合(ArrayList/List<>)去输出余下信息.身份证号码,电话号码,性别,姓名,身高,年龄,体重.需求:根据 姓名 去查询某一行数据.如果集合中不存在提示(“自定 ...

  10. 前端表单中有按钮button自动提交表单

    问题描述 在设计表单时,表单内有一个按钮<button>,该按钮是用来获取其他数据或执行其他操作的.并不是让他提交表单. 解决方案 1) 设置 form 的 onsubmit='retur ...