【ThinkPHP学习】ThinkPHP结合KindEditor SAE storage上传文件图片

Kindeditor在线编辑器(PHP)版 kindeditor在线编辑器php版,直接上传至网站根目录,参照index.php或者使用说明文档进行配置。轻松搞定在线编辑配置 立即下载

RT.

最近将我的使用thinkphp开发的项目移植到SAE上,遇到最大的问题就是,文件的上传问题。因为SAE关闭了网站目录的写权限。所以不能够往网站目录中上传文件。

这篇文章介绍了PHP中kindeditor针对SAE storage的修改:

首先,在应用的srotage中,增加一个domain,如果有需要,可以在该domain下新建一个文件夹,之后要保存文件到该文件夹目录下,可以通过第二个参数$file_name中在文件名前面添加文件夹名称来控制,如果没有该文件夹,storage会自动创建该文件夹。

接下来,将kindeditor/php/upload_json.php中的内容替换为下面的内容,可以兼容普通的虚拟主机或者是SAE环境

<?php
/**
 * KindEditor PHP
 * Giant Chan 2014-9-2
 * 
 */

require_once 'JSON.php';
if(isset($_SERVER['HTTP_APPNAME']))
	$issae = true;	//是否新浪云平台
else
	$issae = false;
$domain = 'public';	//图片domain名称,这里要替换成你用来存储kindeditor上传文件domain名称

//文件保存目录路径
$save_path = '../attached/';
//文件保存目录URL
$save_url = '../attached/';
//定义允许上传的文件扩展名
$ext_arr = array('gif', 'jpg', 'jpeg', 'png', 'bmp');
//最大文件大小
$max_size = 1000000;

//有上传文件时
if (empty($_FILES) === false) {
	//原文件名
	$file_name = $_FILES['imgFile']['name'];
	//文件类型
	$file_type = $_FILES['imgFile']['type'];
	//服务器上临时文件名
	$tmp_name = $_FILES['imgFile']['tmp_name'];
	//文件大小
	$file_size = $_FILES['imgFile']['size'];
	//检查文件名
	if (!$file_name) {
		alert("请选择文件。");
	}
	//检查目录
	if(!$issae)
	{
		if (@is_dir($save_path) === false) {
			alert("上传目录不存在。");
		}
	//检查目录写权限
		if (@is_writable($save_path) === false) {
			alert("上传目录没有写权限。");
		}
	}
	//检查是否已上传
	if (@is_uploaded_file($tmp_name) === false) {
		alert("临时文件可能不是上传文件。");
	}
	//检查文件大小
	if ($file_size > $max_size) {
		alert("上传文件大小超过限制。");
	}
	//获得文件扩展名
	$temp_arr = explode(".", $file_name);
	$file_ext = array_pop($temp_arr);
	$file_ext = trim($file_ext);
	$file_ext = strtolower($file_ext);
	//检查扩展名
	if (in_array($file_ext, $ext_arr) === false) {
		alert("上传文件扩展名是不允许的扩展名。");
	}
       //下面用来限制上传的文件类型,如果你没有需要可以注释掉
       //if($file_type!='image/gif'&&$file_type!='image/pjpeg'&&$file_type!='image/x-png'&&$file_type!='image/jpg'){
       //	alert("只允许上传gif | jpg | png 格式的图片。");
       //	}
	//新文件名
	$new_file_name = date("YmdHis") . '_' . rand(10000, 99999) . '.' . $file_ext;
	//移动文件
	$file_path = $save_path . $new_file_name;

	if(!$issae)
	{      //这里是在非SAE环境下执行的保存文件代码
		if (move_uploaded_file($tmp_name, $file_path) === false) {
			alert("上传文件失败。");
		}
		@chmod($file_path, 0644);
		$file_url = $save_url . $new_file_name;
	}
	else
	{//这里是在SAE环境下执行的保存文件代码
		$s = new SaeStorage();
                $r = $s->upload( $domain , './Editor/'.$new_file_name , $tmp_name); //其中,第二个参数的Editor是在domain下新建一个Editor的文件夹,并将内容存储到该文件夹下
		if(!$r)
			alert("新浪云平台上传文件失败,请检查domain设置是否正确。");
                 $file_url =  $s->getUrl( $domain , './Editor/'.$new_file_name);   //同理,如果你设置了Editor文件夹,必须要在存储url的时候加上Editor,如果没有,可以去掉Editor    
	}
	header('Content-type: text/html; charset=UTF-8');
	$json = new Services_JSON();
	echo $json->encode(array('error' => 0, 'url' => $file_url));
	exit;
}

function alert($msg) {
	header('Content-type: text/html; charset=UTF-8');
	$json = new Services_JSON();
	echo $json->encode(array('error' => 1, 'message' => $msg));
	exit;
}
?>


php kindeditor 上传图片水印功能 本文件包支持php的kindeditor4.1.10上传图片水印功能。 立即下载

相关推荐

kindeditor 编辑器php 版 支持附件上传功能!

kindeditor 编辑器php 版 支持附件上传功能! kindeditor 编辑器php 版 支持附件上传功能!kindeditor 编辑器php 版 支持附件上传功能!kindeditor 编辑器php 版 支持附件上传功能!kindeditor 编辑器php 版 支持附件上传功能!

kindeditor在sae上传文件修改,适合php

upload_json.php 1. 在require_once 'JSON.php';后加入 if(isset($_SERVER['HTTP_APPNAME'])) $issae = true; //是否新浪云平台 else $issae = false; $domain = 'uploadfiles'; //图片domain名称 2. 在{检查目录、检查目

qw_xingzhe的专栏 1011

基于PWM的汽车仪表步进电机微步驱动优化实践

本文深入探讨了基于PWM的微步驱动技术,用于优化汽车仪表步进电机的运行性能。通过将传统的分步驱动升级为PWM微步细分驱动,利用正弦/余弦查表法合成旋转磁场,有效消除了指针抖动与噪声,实现了指针的平滑、精准运动。文章以STM32和VID2905电机为例,提供了详细的硬件连接、代码实现及高级优化技巧,为提升汽车仪表体验提供了实用方案。

weixin_29169505的博客 514

【ThinkPHP学习】ThinkPHP upload与SAE storage结合,实现文件上传

RT. 我的版本是ThinkPHP

Love.Hope.Faith 2540

知识图谱实战:从零搭建一个企业级金融风控图谱(附完整代码)

本文提供了一份从零构建企业级金融风控知识图谱的实战指南。通过使用Neo4j图数据库和Python,手把手教你整合多源数据、设计数据模型,并利用Cypher查询与图算法挖掘隐藏的关联风险与欺诈网络,附有完整代码,助力金融科技从业者实现从数据孤岛到全局风险洞察的升级。

weixin_29095587的博客 364

shader多图叠加变换

shader Shader "Paint3D/AddTexture" { Properties { _MainTex ("Main Texture", 2D) = "white" {} _MainColor("Main Color", Color)=(1,1,1,1) _AddTex0 ("Texture0", 2D) = "white" {} _AddTex1 ("Texture1", 2D) = "white" {} .

李长江的博客 909

think.php 文件上传,ThinkPHP文件上传实例教程

文件上传是很多PHP程序项目中常见的一个功能,今天本文就来分享一个完整的实例,来实现ThinkPHP文件上传的功能。具体方法如下:一、action部分:FileAction.class.php页面代码如下:class FileAction extends Action{function index(){$file=M('file');$list=$file->select();$this-&...

weixin_33557333的博客 668

保姆级教程:在Ubuntu 22.04上,用Xinference为你的RAGFLOW项目接入BGE重排序模型

本教程详细介绍了在Ubuntu 22.04系统上使用Xinference为RAGFLOW项目部署BGE重排序模型的全过程。从环境准备、Xinference服务启动、模型下载到RAGFLOW集成实战,提供了保姆级的步骤指导和常见问题解决方案,帮助开发者高效提升检索结果的精准度。

weixin_29069131的博客 384

图片上传至数据库(新浪云)的方法

在程序开发中,经常会遇到上传图片的问题,那么,下面的一段代码可以帮助你将图片上传至服务器(本篇代码用的服务器是新浪云的SAE,服务器端的代码是用thinkPHP编写,会在后面贴出)。         直接上代码: 先导入AFN的库和头文件 -(void)savepicture { NSString *url = imageUrl; AFHTTPRequestOperationM

w582324909的博客 3111

QT使用libssh2库通过密匙实现sftp协议上传文件

qt下使用libssh2通过密匙连接sftp服务器端

小米的修行之路 948

光电二极管探测器电流信号处理与指令输出系统

本文提出了一种基于Python的光电二极管电流信号处理系统设计方案。该系统能够实时采集、处理光电二极管输出的电流信号,并根据预设阈值输出控制指令。系统采用模块化架构,包含数据采集、信号处理、阈值检测、指令生成等核心模块。其中数据采集模块提供了模拟器实现和硬件接口框架,支持噪声模拟和脉冲信号生成。系统设计考虑了实时性、可靠性和可扩展性,适用于光强测量、光电检测等多种应用场景。

huanghm88的专栏 1180

thinkphp6 上传文件

第一步: config/filesystem.php 文件 return [ // 默认磁盘 'default' => env('filesystem.driver', 'public'), // 这里上传的文件会上传到 public/uploads/ 下 // 磁盘列表 'disks' => [ 'local' => [ 'type' => 'local', 'root'

qq_23116221的博客 1865

电路布局中近场耦合问题

开关电源EMC设计中,传导骚扰超标往往源于空间耦合而非参数问题。某案例中,DC-DC模块的非屏蔽电感磁场泄漏耦合到邻近X电容,导致0.5MHz频点超标。通过将X电容移至PCB底层、优化布局保持15mm间距后,问题完全解决。实践证明:EMC设计需注重空间隔离,优先采用屏蔽电感,滤波元件应远离高频磁场区,布局优化比参数调整更有效。这提示工程师需将电磁兼容视为空间问题而不仅是电气问题。

硬核科技 375

KindEditor图片上传URL路径处理

在使用kindEditor编辑器时,发现一个问题。kindEditor的图片上传本系统是完全OK啦,但是作为借口传出去呢?就会访问不到图片。我们看下上传后的图片地址,是从工程名开始的。没有服务器地址。所以外部当然调不到啦。那么怎么解决呢。看看kindeditor.js里面的一个方法: insertimage : function(url, title, width, height, 

马旭的专栏 6399

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

简单!!!!kindeditor隐藏上传图片框网络图片或本地上传的功能

kindeditor富文本编辑器点击上传图片按钮,在弹出的窗口中去掉上传网络图片的功能,只留下本地上传,如图: 以及关闭本地上传文件功能,只开启网络图片功能,如图: 4.1.10 和 4.1.11 版,在加载时加入一个配置参数就可以了。示例代码如下: "stylesheet" href="kindeditor/themes/default/

努力奋进,勇追不止…… 1841

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

PHP 编辑器 kindEditor 上传图片失败 解决方案

这个坑是原始巨坑,刚学PHP出来的时候,为这个问题鏖战了好几天,含泪将解决方案写出来,希望能帮到你们问题 PHP 编辑器 kindEditor上传图片失败 解决方案打开 kindEditor 的 php目录 下的 upload_json.php 文件夹,修改以下文件保存目录路径//文件保存目录路径 $save_path = '../../../../upload/'; //文件保存目录URL

吴朝洪 4130

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

如何使用SAE的Storage

Storage在里面当然可以创建文件夹,只不过无法通过代码创建,而是在后台管理页面中的storage来创建的。下面这个例子演示了如何读取Storage中的文件: 注:我的domain叫做mytestapp02,里面有一个叫做hello的文件夹: public void storageTest(){ String domain="mytestapp02"; String pa

PHP 码农的专栏 5069

Sae 上传文件到Storage

首先说一下几个地方: 1.上传使用ss.upload("domin域名","源地址","目标地址,也就是storage的地址");假设要上传到storage某一个详细的文件夹下目标地址写为"upload/"+filename;文件就上传到了upload文件夹下。 2.storage以下全部文件的路径是http://myapp-mybucket.stor.sinaapp.com/path...

weixin_33834679的博客 177

SAE将本地图片和远程图片保存至Storage

1.远程图片保存至Storage 2.本地图片上传至Storage

拿铁加不加糖 7029
上一篇: 【ThinkPHP学习】函数详解:R方法
下一篇: 【ThinkPHP学习】ThinkPHP upload与SAE storage结合,实现文件上传
GiantChan
博客等级 码龄16年 76粉丝 108原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值