ThinkPHP5.0图片上传生成缩略图实例代码
很多朋友遇到这样一个问题,图片上传生成缩略图,很多人在本机(win)测试成功,上传到linux 服务器后错误。
我也遇到同样的问题。网上一查,有无数的人说是服务器临时文件目录权限问题。
几经思考后,发现并非如此。
其根本的原因是,保存到变量的信息是之前的,之后又move移动到了自己指定的目录下,同时临时文件已经不存在。所以再生成缩略图的时候,需要open的,文件地址应该是自己定义的目录+文件名。然而很多实例文档中,还是使用的move 之前的信息。
又加之在win服务器下,move后,指定目录已生成了文件,同时临时文件未被删除。所以能用move之前的信息生成缩略图。
希望不多的言语能帮助遇到同样问题的你。
下面在通过实例代码给大家介绍ThinkPHP5.0图片上传生成缩略图的方法。
代码如下所示:
<?php
namespace app\common\controller;
use app\common\model\Goods;
class Tools
{
public static function upload_goods_img($whereName="", $width="", $height="")
{
// 打开图片的相对路径
$imgpath = config('img_path');
// 绝对路径
$imgRootPath = config('imgRootPath');
$storeId = '自定义';
$merchantId = '自定义';
$old_filename = $storeId . $merchantId . time();
$filename = $storeId . $merchantId . time() . mt_rand(1000, 9999);
$type = Goods::upload($whereName, $old_filename);
if($type)
{
$savepath = $imgRootPath . '/' . $whereName . '/' . $filename . '.' . $type;
$thumbfile = $filename . '.' . $type;
$thumbName = $imgpath . '/' . $whereName . '/' . $thumbfile;
$image = \think\Image::open($imgpath . '/'. $whereName .'/' . $old_filename . '.' . $type);
$image->thumb($width, $height, \think\Image::THUMB_FIXED)->save($thumbName);
$data = [
'access_url' => $imgRootPath . '/' . $whereName . '/' . $filename . '.' . $type,
'filename' => $thumbfile,
];
return $data;
}
}
}
调用:
class Goods
{
public function upload_sku()
{
$whereName = 'goods/sku';
$width = 750;
$height = 750;
$data = Tools::upload_goods_img($whereName,$width, $height);
return returnJson(1, '上传成功', $data);;
}
}
ThinkPHP5.0图片上传生成缩略图实例代码的更多相关文章
- TP3.2 图片上传及缩略图
基于TP自带的上传文件的类, Think/Upload.class.php 设置表单的enctype属性 下面是上传的具体方法 /** * 图片上传处理 * @param [String] $path ...
- yii2.0 图片上传(摘录)
文章来源:http://blog.sina.com.cn/s/blog_88a65c1b0101izmn.html 下面小伙就带领大学学习一下 Yii2.0 的图片上传类的使用,还是老样子,如果代码样 ...
- Spring中MultipartHttpServletRequest实现文件上传 生成缩略图
转贴自:http://my.oschina.net/nyniuch/blog/185266 实现图片上传 用户必须能够上传图片,因此需要文件上传的功能.比较常见的文件上传组件有Commons Fil ...
- Thinkphp5+plupload图片上传功能,支持实时预览图片。
今天和大家分享一个国外的图片上传插件,这个插件支持分片上传大文件.其中著名的七牛云平台的jssdk就使用了puupload插件,可见这个插件还是相当牛叉的. 这个插件不仅仅支持图片上传,还支持大多数文 ...
- 图片上传即时显示javascript代码
这是基于javascript的一种图片上传即时显示方法,测试结果IE6和火狐浏览器可以正常使用.google浏览器不兼容. 这种方法兼容性比较差,仅供参考,建议使用ajax方法来即时显示图片. 1.首 ...
- Asp.net 2.0 无刷新图片上传 显示缩略图 具体实现
简单三步实现图片无刷新上传:注意是上传,至于上传时的验证,比如图片的尺寸,大小,格式判断.限制等,自行解决. 兼容性想还不错:FF,CH,IE,猎豹,都是可以实现的.如果看到回显.当然就是成功了. 经 ...
- Django xadmin图片上传与缩略图处理
基本摘要 用python django开发时,个人选中Xadmin后台管理系统框架,因为它*内置功能丰富, 不仅提供了基本的CRUD功能,还内置了丰富的插件功能.包括数据导出.书签.图表.数据添加向导 ...
- 通过AngularJS实现图片上传及缩略图展示
从项目中截出的代码 HTML部分: <section> <img src="image/user-tuijian/tuijian_banner.png" /> ...
- yii2.0图片上传
在根目录下夹uploads文件夹 控制器 UploadController.php <?php namespace frontend\controllers; use Yii; use fron ...
随机推荐
- switch case 忘记 break
昨天纠结了很久的问题,一直找不到原因,早上发现是一个低级错误: private void selectButton(int id) { switch (id) { case 0: recommend_ ...
- 查看源代码HTML
HTML 提示 - 如何查看源代码 如果您想找到其中的奥秘,只需要单击右键,然后选择“查看源文件”(IE)或“查看页面源代码”(Firefox),其他浏览器的做法也是类似的.这么做会打开一个包含页面 ...
- 微软在线 VSTS/TFS 使用简介,如何删除项目,帐号,获取git地址等
名称:微软 VSTS 全称: Visual Studio Team Services 地址:https://www.visualstudio.com/zh-hans/ 说明:注册就可以了使用了(如何使 ...
- January 27 2017 Week 4 Friday
Procrastination is the thief of time. 拖延是时光之贼. Procrastination is the thief of time, besides, it is ...
- Apache PredictionIO在Docker上的搭建及使用
1.Apache PredictionIO介绍 Apache PredictionIO 是一个孵化中的机器学习服务器,它可以为为开发人员和数据科学家创建任何机器学习任务的预测引擎.官方原文: Apac ...
- 使用websploit在局域网全自动渗透
原理为 websploit调用dnsdpoof进行dns欺骗配合神器metasploit的web_autopwn模块进行渗透:特点:过程基本全自动. 终端输入websploit打开websploit: ...
- thuwc2018 爆炸记
从没考过这么差,必须好好总结一下.. $day1$: 上午到了雅礼洋湖,下午就开始考试.. 食堂饭菜还是很不错的,听说都是雅礼自己垫的? 下午的$day1$爆炸了.. 开考以后看了一下三个题,感觉一开 ...
- miniui dataGrid detail grid
<div > <div id="vkhGrjx_grid" class="mini-datagrid" style="wi ...
- 20145238-荆玉茗 《网络对抗》-逆向及Bof基础实践
20145238荆玉茗<网络对抗>-逆向及Bof基础实践 1 逆向及Bof基础实践说明 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:m ...
- MVC学习九:MVC 特性本质
一.特性的本质就是:对属性.方法.类加特性,本质就是new 一个特性类对象赋值给属性.方法.类. 可以通过反射的方式取得特性的值,代码如下: ①自定义特性 public class MyAttribu ...