<?php
namespace app\api\controller;
use think\Controller;
use think\Db; class Plus extends Base{ public function __construct(){
parent::__construct();
$this->logic=new \app\plus\logic\Image();
} //上传图片
public function upload_img(){ $file=$_FILES['myfile']; if(!$user_id){
$user_id=$_REQUEST[user_id];
}
$data=$this->logic->Upload_img($file,$type,$user_id);
echo json_encode($data);
}
}
public function __construct(){
$this->db= new \app\userweb\model\PublicModel();
// $this->img_url="http://".$_SERVER["HTTP_HOST"]."/lingdu/web/";
$this->img_url=config('DOMAIN')."/";
} public function Upload_img($file,$type,$user_id){
// echo $_SERVER["HTTP_HOST"];exit;
ini_set('display_errors', 'Off');
error_reporting(E_ALL & ~ E_WARNING); if(!$type){
$type="public";
}
if(!$user_id){
$user_id="0";
}
if ($file==null){
$data['status']="10009";
return $data;
exit;
}
$tmp_type=$file['type'];
$uptypes=array('image/jpg','image/jpeg','image/png','image/pjpeg','image/gif','image/bmp','image/x-png');
if(!in_array($tmp_type,$uptypes)){
$data['status']="10006";
}else {
//var_dump($user_id);
$fliedir="Uploads/";
mkdir($fliedir);
$fliedir=$fliedir."$type/";
mkdir($fliedir);
$fliedir=$fliedir."$user_id/";
mkdir($fliedir);
$cur_time=uniqid()."-".time();
$file_type=str_replace("image/","",$tmp_type);
$file_name=$fliedir.$user_id.'-orogin-'.'-'.$type.'-'.$cur_time.".".$file_type;
move_uploaded_file($file["tmp_name"],$file_name);
$none=file_exists($file_name);
//var_dump($file_name);
if ($none!=null){
$image = new \think\Image();
$data["status"]=10001;
$data["img_orogin"]=$this->img_url.$file_name;
$image->open($file_name);
$img_thumb=$fliedir.$user_id.'-thumb'.'-'.$type.'-'.$cur_time.".".$file_type;
if ($type=="goods"){
// 按照原图的比例生成一个最大为150*150的缩略图并保存为thumb.jpg
$image->thumb(300, 300,\think\Image::IMAGE_THUMB_FIXED)->save($img_thumb);
// $image->thumb(800, 800,\Think\Image::IMAGE_THUMB_FIXED)->save($file_name);
}else {
$image->save($img_thumb);
} $data["img_thumb"]=$this->img_url.$img_thumb;
}else {
$data["status"]=10012;
}
} // dump($data);
return $data;
}

Thinkphp5封装上传图片的更多相关文章

  1. Thinkphp5+Layui上传图片

    ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能 ...

  2. ThinkPHP5 封装邮件发送服务(可带附件)

    1.Composer 安装 phpmailer composer require phpmailer/phpmailer 2.ThinkPHP 中封装邮件服务类 我把它封装在扩展目录 extend/M ...

  3. ThinkPHP5 封装邮件发送服务(可发附件)

    1.Composer 安装 phpmailer 1 composer require phpmailer/phpmailer 2.ThinkPHP 中封装邮件服务类 我把它封装在扩展目录 extend ...

  4. Thinkphp5.0上传图片与运行python脚本

    这里只体现了php可以通过批处理文件调用python脚本的效果 控制器代码 访问路径为127.0.0.1/index/index/upload. index模块,index控制器,upload方法. ...

  5. Laravel5.x 封装的上传图片类

    图片缩放需要用conposer安装 ImageManagerStatic类 可参考下面的地址安装: https://www.jb51.net/article/128159.htm 控制器里: 控制器里 ...

  6. 原生js上传图片遇到的坑(axios封装)

    后台给我写了一个上传图片的接口,自己用form表单测试成功 接口可以正常跳转 测试的代码: <!doctype html> <html lang="en"> ...

  7. thinkphp5权限仿制

    权限列表 流程 thinkphp5封装好的权限模块 RBAC还有auth and then .......管理员表,可以依据auth.php搭建所有的权限表

  8. ext js/Ext.Net_演示 htmleditor 上传&插入图片

    本文内容 解决方案结构 HtmlEditor_Upload.js 脚本 HtmlEditorUploadImg.ashx 上传图片到服务器 演示 htmleditor 控件添加插入图片功能   解决方 ...

  9. PHP实现微信提现功能

    提现必须得用双向证书.所以大家一定要在微信的商户平台找到相应的地方去设置.因为做这个提现已经有一段时间了.所以设置微信商户平台的那几个地方没有图的情况.也说不清楚.下次再做提现的时候.给大家分享如何设 ...

随机推荐

  1. Windows Server 2016 安装Docker

    使用Windows自带的Hyper-V 而不是安装Docker Enterprise. 废话不多说,撸起袖子开干 管理员权限打开PowerShell (因为server版本默认是cmd不是ps,所以需 ...

  2. 牛客网Java刷题知识点之构造函数与set方法、与类名同名的一般方法、构造函数中有return语句

    不多说,直接上干货! 通过 牛客网Java刷题知识点之构造函数是什么.一般函数和构造函数什么区别呢.构造函数的重载.构造函数的内存图解 我们对构造函数有了一个比较清楚的认识,当我们在创建对象时,我们会 ...

  3. java环境安装(win7)

    首先,你应该已经安装了 java 的 JDK 了,笔者安装的是:jdk-7u13-windows-x64 接下来主要讲怎么配置 java 的环境变量,也是为了以后哪天自己忘记了做个备份 1.进入&qu ...

  4. jQuery动态添加元素,并提交json格式数据到后台

    参考:https://www.cnblogs.com/shj-com/p/7878727.html 下载 下载该插件的地址是:http://www.bootcdn.cn/jquery.serializ ...

  5. 数据库(DBUtils)

    DBUtils和连接池 今日内容介绍 u DBUtils u 连接池 第1章 DBUtils 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC开发,本案例我们讲采用apache c ...

  6. Regexp:常用的几个正则表达式

    1.isEmail /** * * @desc 判断是否为邮箱地址 * @param {String} str * @return {Boolean} */ function isEmail(str) ...

  7. Apache Spark 2.2.0 中文文档 - GraphX Programming Guide | ApacheCN

    GraphX Programming Guide 概述 入门 属性 Graph 示例属性 Graph Graph 运算符 运算符的汇总表 Property 运算符 Structural 运算符 Joi ...

  8. ArcGIS中Features与JSON的互相转化

    实际操作过程非常简单,这里就简单记录下转换工具的位置:

  9. jQuery-名称符号$与其他库函数冲突

    1.通过全名替代简写的方式来使用 jQuery jQuery("button").click(function(){ jQuery("p").text(&quo ...

  10. 在MVC中加载view(点开链接)的方式

    主要有: Html.ActionLink Html.RenderPartial Html.RenderAction Html.Partial AJAX.ActionLink load 浏览器对象模型 ...