<?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. 031 Next Permutation 下一个排列

    实现获取下一个排列函数,这个算法需要将数字重新排列成字典序中数字更大的排列.如果不存在更大的排列,则重新将数字排列成最小的排列(即升序排列).修改必须是原地的,不开辟额外的内存空间.这是一些例子,输入 ...

  2. var obj = eval(result); 解析json

    l  var obj = eval(result);解析json

  3. HBase 相关API操练(一):Shell操作

    HBase 为用户提供了一个非常方便的使用方式, 我们称之为“HBase Shell”. HBase Shell 提供了大多数的 HBase 命令, 通过 HBase Shell 用户可以方便地创建. ...

  4. RabbitMQ使用教程(三)如何保证消息99.99%被发送成功?

    1. 前情回顾 RabbitMQ使用教程(一)RabbitMQ环境安装配置及Hello World示例 RabbitMQ使用教程(二)RabbitMQ用户管理,角色管理及权限设置 在以上两篇博客发布后 ...

  5. EditPlus常用操作

    EditPlus注册码在线生成 http://www.jb51.net/tools/editplus/ 随意填写个用户名,生成对应的密码就可以使用editplus了 EditPlus常用快捷键 编代码 ...

  6. 关于小程序后台post不到数据的问题

    小程序post请求获取不到数据问题 把headers的参数“Content-Type”的值改为application/x-www-form-urlencoded: Request Body Type ...

  7. C 碎片十 关键字&库函数

    一.关键字 1, sizeof sizeof关键字用于计算所占空间大小的 格式:sizeof(类型名/变量名); 2, typedef typedef关键字用于重命名数据类型的,相当于给原来的数据类型 ...

  8. Javascript学习笔记-一些关键点

    Javascript学习笔记-一些关键点 Table of Contents 1. 调试 2. == vs === 3. 两种函数声明 4. 技术感悟 1 调试 现在的主流浏览器都提供了开发者模式,可 ...

  9. 12个非常不错的javascript类库

    Javascript是一个解释性的编程语言.最初作为浏览器的一部份在浏览器中运行,可以和用户交互,并且控制浏览器,异步通讯,修改显示的document.在这篇文章中,我们收集了12款最新的Javasc ...

  10. python property用法

    参考 http://openhome.cc/Gossip/Python/Property.html http://pyiner.com/2014/03/09/Python-property.html ...