搜索
系统检测到您的用户名不符合规范:

thinkphp5+uploadify公共图片上传接口

浏览:3314 发布日期:2017年06月24日 分类:ThinkPHP5专区 关键字: 公共图片上传接口 thinkphp5 uploadify
一直看教程里,有所谓的把image上传写好放在common中后,就是公用的了.自个儿试了一下才知道,所谓的公共问题很多,会产生图片存储混乱,所有上传的文件全部保存在public/upload下,不适合管理.花了一下午,改写了一下.
首先是js处理部分: $("#touch_icon").uploadify({
//file_path_name 是分类保存图片的文件夹名
//type 值可以自定义,传到控制器
'formData' : {'file_path_name' : 'touch_icon','type' : '1'},
'width' : 104,
'height' : 30,
'swf' : SCOPE.uploadify_swf,
'uploader' : SCOPE.uploadify_url,
'buttonText' : '',
'fileTypeDesc' : '手机小图标',
'fileObjName' : 'images',
'method' : 'get',
'onUploadSuccess' : function(file, data, response) {
if(response)
{
var obj = JSON.parse(data);
$("#touch_img").find("a").attr("href", obj.data);
$("#touch_img").find(".icon-picture").attr("onmouseover", "toolTip('<img src= " + obj.data + ">')");
$("#t_icon").attr("value", obj.data);
$("#touch_img").attr("class", "show");
}
},
});
简单点就是自定义了两件参数file_path_name和type抛送给了控制器,

'swf' : SCOPE.uploadify_swf,
'uploader' : SCOPE.uploadify_url,
这两个也是接收模版文件抛送过来的地址<script type="text/javascript">
var SCOPE={
'uploadify_swf':"地址",
'uploadify_url' :"地址",
}
控制器代码:namespace app\api\controller;
use think\Controller;
use think\Request;
use think\File;

class Images extends Controller
{
//商品分类手机小图标上传
public function upload()
{
//获取表单上传文件
$file = request()->file('images');

//获取get传送过来的参数
$getData = input('get.');


if ($getData['type'] == 1)
{
// 自定义规则生成文件名,并移动到框架应用根目录/data/uploads/file_path_name 目录下
$info = $file->rule('uniqid')->move('data' . DS . 'uploads' . DS . $getData['file_path_name']);
}
elseif ($getData['type' == 2])
{
// 移动到框架应用根目录/data/uploads/file_path_name/日期 目录下
$info = $file->move('data' . DS . 'uploads' . DS . $getData['file_path_name']);
}

if($info && $info->getPathname())
{
//将'\'替换成'/'后返回 data/uploaps/file_path_name/日期/文件名.jpg
return json(show('1','success','/' . str_replace('\\', '/', $info->getPathname())));
}

return json(show('0','error'));
}
}
show方法/**
* 显示
* @param [type] $status 状态
* @param [type] $message 提示
* @param array $data 数组数据
*/
function show($status, $message = '', $data = [])
{
return [
'status' => intval($status),
'message' => $message,
'data' => $data,
];
}
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
jaimin
积分:801 等级:LV2
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /