Thinkphp5封装上传图片
<?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封装上传图片的更多相关文章
- Thinkphp5+Layui上传图片
ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能 ...
- ThinkPHP5 封装邮件发送服务(可带附件)
1.Composer 安装 phpmailer composer require phpmailer/phpmailer 2.ThinkPHP 中封装邮件服务类 我把它封装在扩展目录 extend/M ...
- ThinkPHP5 封装邮件发送服务(可发附件)
1.Composer 安装 phpmailer 1 composer require phpmailer/phpmailer 2.ThinkPHP 中封装邮件服务类 我把它封装在扩展目录 extend ...
- Thinkphp5.0上传图片与运行python脚本
这里只体现了php可以通过批处理文件调用python脚本的效果 控制器代码 访问路径为127.0.0.1/index/index/upload. index模块,index控制器,upload方法. ...
- Laravel5.x 封装的上传图片类
图片缩放需要用conposer安装 ImageManagerStatic类 可参考下面的地址安装: https://www.jb51.net/article/128159.htm 控制器里: 控制器里 ...
- 原生js上传图片遇到的坑(axios封装)
后台给我写了一个上传图片的接口,自己用form表单测试成功 接口可以正常跳转 测试的代码: <!doctype html> <html lang="en"> ...
- thinkphp5权限仿制
权限列表 流程 thinkphp5封装好的权限模块 RBAC还有auth and then .......管理员表,可以依据auth.php搭建所有的权限表
- ext js/Ext.Net_演示 htmleditor 上传&插入图片
本文内容 解决方案结构 HtmlEditor_Upload.js 脚本 HtmlEditorUploadImg.ashx 上传图片到服务器 演示 htmleditor 控件添加插入图片功能 解决方 ...
- PHP实现微信提现功能
提现必须得用双向证书.所以大家一定要在微信的商户平台找到相应的地方去设置.因为做这个提现已经有一段时间了.所以设置微信商户平台的那几个地方没有图的情况.也说不清楚.下次再做提现的时候.给大家分享如何设 ...
随机推荐
- 牛客网Java刷题知识点之表达式类型的自动提升
不多说,直接上干货!
- <checking for mysql_config not found>
php 5.3.29编译安装排错: ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --w ...
- Quartz.NET实现作业调度(3.0版本实现)定时执行一个任务
2.0版本请参考https://www.cnblogs.com/best/p/7658573.html这里的文章很详细: 我们现在想每5秒钟往txt文件夹里存储一个时间 首先:定义一个类,实现Quar ...
- WebAPI创建
一.创建Web API 1.Create a New Web API Project创建新的Web API项目 Start by running Visual Studio 2010 and sele ...
- ubuntu下编译安装mysql记录
搞了整整一天,好不容易折腾完,在此记录下,下次就省事了. 去官网http://www.php.net/downloads.php下载所需要的php版本,这里我选择5.6.22. ...
- 50道CSS基础面试题(附答案)
1 介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的? 标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin低版本IE盒子模型:宽度 ...
- thinkphp搜索实现
视图: <html lang="zh-cn"><head> <meta charset="UTF-8"><title& ...
- centos升级3.10内核到4.4
为了满足k8s对内核要求,默认Centos 7的内核为3.10建议升级到4.x内核 默认3.10内核升级为4.x内核 rpm -Uvh http://www.elrepo.org/elrepo-rel ...
- LeetCode Length of Last Word 最后一个字的长度
class Solution { public: int lengthOfLastWord(const char *s) { ; string snew=s; ,len=strlen(s); ]; ) ...
- 将ts文件合并为mp4命令
cmd: copy/b D:\*.ts D:\new.ts 参考:http://blog.sina.com.cn/s/blog_66b4f1180102uzxs.html