laravel实现上传图片,并且制作缩略图,按照日期存放的代码


Posted in PHP onOctober 16, 2019

先上代码吧:

前端代码:

有很多小伙伴在做表单上传文件的时候没有注意表单的上传格式是什么,就可能导致上传文件、图片不成功!

<form id="form1" name="form1" class="form-horizontal form-label-left" enctype="multipart/form-data" method="post" action="{{asset('/content/add')}}" οnsubmit="submitContent()">
{{method_field('PUT')}}
laravel里面使用method_field()函数来伪造一些http请求;

<div class="form-group">
 <label class="control-label col-md-3 col-sm-3 col-xs-12" for="main_img">展示主图 <span class="required">*</span></label>
 <div class="col-md-6 col-sm-6 col-xs-12">
 <div id="inputBox">
  <input type="file" title="请选择图片" id="mainImg" name="main_img" required multiple accept="image/png,image/jpg,image/gif,image/JPEG"/>
  <div id="mainImgBox"></div>
 </div>
 </div>
</div>
 {!! csrf_field() !!}

给表单加入token;

后端处理:

首先我使用的是Intervention Image类库来制作图片的缩略图、以及保存图片到指定位置;

关于Intervention Image类库我就不多做介绍,如有不了解的请度娘帮助;

<?php
namespace App\Http\Controllers\Admin;
 
use App\Http\Controllers\Controller;
use Image;
use Validator;
 
class ContentController extends Controller{
 public function addProcess(){
 $inputData = request()->all();
 $rules = [
  'main_img' => [ 'file','image','max:10240' ]
 ];
 $validator = Validator::make($inputData,$rules);
 if($validator->fails()){
  return back()->withErrors($validator)->withInput();
 }
 
  $photo = $inputData['main_img'];
  $file_name = uniqid().'.'.$photo->getClientOriginalExtension();
  $file_relative_path = 'assess/images/content/'.date('Y-m-d');
  $file_path = public_path($file_relative_path);
  if (!is_dir($file_path)){
  mkdir($file_path);
  }
  $thumbnail_file_path = $file_path . '/thumbnail-'.$file_name;
  $image = Image::make($photo)->resize(200, null, function ($constraint) {$constraint->aspectRatio();})->save($thumbnail_file_path);
  $file_path .= '/'.$file_name;
  $image = Image::make($photo)->save($file_path);
 
 echo ‘上传成功!';
 }
}

后端处理主要思想:首先通过Validator类库来检验当前上传上来的文件是否符合要求,如果符合要求,就可以对图片进行处理了;处理的时候我是先把要保存图片的相对地址给拼接好,然后通过laravel里面的public_path函数得出绝对的local地址;再去判断该文件夹是否存在,如果不存在那就创建该文件夹。创建好文件夹后我们就应该对上传上来的图片进行进一步处理了,比如我这里需要制作它的缩略图,并且保证图片横纵比,如果有其他的要求,可以前往Intervention Image类库自行查看怎么制作。

以上这篇laravel实现上传图片,并且制作缩略图,按照日期存放的代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
在php MYSQL中插入当前时间
Apr 06 PHP
php 删除cookie和浏览器重定向
Mar 16 PHP
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
May 02 PHP
smarty基础之拼接字符串的详解
Jun 18 PHP
PHP生成不重复标识符的方法
Nov 21 PHP
列举PHP的Yii 2框架的开发优势
Jul 03 PHP
thinkphp整合微信支付代码分享
Nov 24 PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
PHP正则匹配到2个字符串之间的内容方法
Dec 24 PHP
php+js实现的无刷新下载文件功能示例
Aug 23 PHP
Yii Framework框架开发微信公众平台示例
Apr 26 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
Oct 15 #PHP
解决Laravel自定义类引入和命名空间的问题
Oct 15 #PHP
laravel 如何实现引入自己的函数或类库
Oct 15 #PHP
Laravel 类和接口注入相关的代码
Oct 15 #PHP
在PHP中实现使用Guzzle执行POST和GET请求
Oct 15 #PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
Oct 15 #PHP
解决在laravel中auth建立时候遇到的问题
Oct 15 #PHP
You might like
PHP url 加密解密函数代码
2011/08/26 PHP
使用php+apc实现上传进度条且在IE7下不显示的问题解决方法
2013/04/25 PHP
修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
2009/10/11 Javascript
document.onreadystatechange事件的用法分析
2009/10/17 Javascript
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
JavaScript中Math对象方法使用概述
2014/01/02 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
2016/03/25 Javascript
hovertree插件实现二级树形菜单(简单实用)
2016/12/28 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
vue.js开发环境安装教程
2017/03/17 Javascript
javascriptvoid(0)含义以及与&quot;#&quot;的区别讲解
2019/01/19 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
layui实现根据table数据判断按钮显示情况的方法
2019/09/26 Javascript
Element Carousel 走马灯的具体实现
2020/07/26 Javascript
python 生成不重复的随机数的代码
2011/05/15 Python
python中sleep函数用法实例分析
2015/04/29 Python
Python实现的寻找前5个默尼森数算法示例
2018/03/25 Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
2019/05/29 Python
Python实现微信小程序支付功能
2019/07/25 Python
python中property和setter装饰器用法
2019/12/19 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
PyCharm常用配置和常用插件(小结)
2021/02/06 Python
HTML+CSS3模拟心的跳动实例代码
2017/09/05 HTML / CSS
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
如何打开WebSphere远程debug
2014/10/10 面试题
获奖的大学生创业计划书
2014/01/05 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
大学生求职自荐信范文
2015/03/04 职场文书
实习护士自荐信
2015/03/25 职场文书
2015初中生物教研组工作总结
2015/07/21 职场文书
入党后的感想
2015/08/10 职场文书
给numpy.array增加维度的超简单方法
2021/06/02 Python
angular4实现带搜索的下拉框
2022/03/25 Javascript
Java存储没有重复元素的数组
2022/04/29 Java/Android