首先我们找一款可以将word图片导入后台编辑器,一般编辑器会将图片转换成base64 编码,我们后台再将base64编码转换成图片文件,这里找到一个比较好的编辑器tinymce
下载地址:https://github.com/Five-great/tinymce-plugins
导入word查看源码导入后图片是base64的,我需要将他转换成图片
在文件包tinymce/config.js
images_upload_base_path
这个链接就是接受base64地址可以在这里直接转换再返回文件地址
/**base64转图片 */
public function base64() {
$return = array('code' => 1, 'info' => '上传失败', 'data' => '');
$file=I('post.file');
//dump($file);
if(preg_match('/^(data:\s*image\/(\w+);base64,)/',$file,$result)){
//dump($result);
$imageName = date("His",time())."_".rand(1111,9999).'.png';
$path = "/Uploads/Temp/".date("Ymd",time());
$dir= ? '../'. :'.'.;
if (!is_dir($dir.$path)){ //判断目录是否存在 不存在就创建
mkdir($dir.$path,0777,true);
}
$imageSrc= $path."/". $imageName;
//dump($dir.$imageSrc);exit;
if (file_put_contents($dir.$imageSrc, base64_decode(str_replace($result[1], '', $file)))){
//dump( $imageSrc);
$file= new \Fwadmin\Service\AwsFile();
$fileUrl=$file->uploadFile($imageName ,$dir.$imageSrc,substr($path,1));//将图片上传到亚马逊存储服务器
$return['code'] = 200;
$return['data'] = $fileUrl;
if($fileUrl){
$del=delfile($imageSrc); //删除本地图片
}
}
}
//返回JSON数据
exit(json_encode($return));
}
2.编辑器的文件上传
file_picker_callback //自定义文件上传函数
文件通过ajax 上传都后台
public function tinymceupload() {
$return = array('code' => 1, 'info' => '上传成功', 'data' => '');
//$file=$_FILES["file"];
//dump($file);exit;
//上传配置
$setting = array(
'mimes' => '', //允许上传的文件MiMe类型
'maxSize' => 0, //上传的文件大小限制 (0-不做限制)
'exts' => 'jpg,gif,png,jpeg,zip,rar,pdf,word,xls,txt', //允许上传的文件后缀
'autoSub' => true, //自动子目录保存文件
'subName' => array('date', 'Y-m-d'), //子目录创建方式,[0]-函数名,[1]-参数,多个参数使用数组
'rootPath' => '.', //保存根路径这里必须为点
'savePath' => '/Uploads/detail/', //保存路径
'saveName' => array('uniqid', ''), //上传文件命名规则,[0]-函数名,[1]-参数,多个参数使用数组
'saveExt' => '', //文件保存后缀,空则使用原后缀
'replace' => false, //存在同名是否覆盖
'hash' => true, //是否生成hash编码
'callback' => false, //检测文件是否存在回调函数,如果存在返回文件信息数组
);
//上传文件
$Model = D('Upload', 'Service');
foreach ($setting as $k => $v) {
$Model->setconfig($k, $v);
}
$info = $Model->upload('all');
//dump($info);
if ($info) {
$file= new \Fwadmin\Service\AwsFile();
$dir= ? '../'. :'.'.;
$url=$file->uploadFile($info['file']['savename'],$dir.$info['file']['savepath'] .$info['file']['savename'],substr($info['file']['savepath'],1));
$info['fullpath'] =$url;
// $info['fullpath'] =$dir.$info['file']['savepath'] .$info['file']['savename'];
}
session('upload_error', $Model->getError());
//返回数据
if ($info) {
$return['code'] = 200;
$return['data'] = $info['fullpath'];
} else {
$return['code'] = 1;
$return['info']='上传失败';
$return['message'] = session('upload_error');
}
//返回JSON数据
exit(json_encode($return));
}