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版
Oct 09 PHP
PHP集成FCK的函数代码
Sep 27 PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
Mar 21 PHP
PHP 验证码的实现代码
Jul 17 PHP
解析Extjs与php数据交互(增删查改)
Jun 25 PHP
两级联动select刷新后其值保持不变的实现方法
Jan 27 PHP
ThinkPHP单字母函数(快捷方法)使用总结
Jul 23 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
Aug 18 PHP
WIN8.1下搭建PHP5.6环境
Apr 29 PHP
typecho插件编写教程(一):Hello World
May 28 PHP
PHP中list()函数用法实例简析
Jan 08 PHP
php正则修正符用法实例详解
Dec 29 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 设计模式之 单例模式
2008/12/19 PHP
PHP extract 将数组拆分成多个变量的函数
2010/06/30 PHP
php实现文件下载实例分享
2014/06/02 PHP
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
php计算整个目录大小的方法
2015/06/01 PHP
jQuery 开发者应该注意的9个错误
2012/05/03 Javascript
js 回车提交表单两种实现方法
2012/12/31 Javascript
JavaScript检测浏览器cookie是否已经启动的方法
2015/02/27 Javascript
JavaScript使用二分查找算法在数组中查找数据的方法
2015/04/07 Javascript
js输出数据精确到小数点后n位代码
2016/07/02 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
js仿小米手机上下滑动效果
2017/02/05 Javascript
JS实现列表页面隔行变色效果
2017/03/25 Javascript
一个Vue视频媒体多段裁剪组件的实现示例
2018/08/09 Javascript
js逆向解密之网络爬虫
2019/05/30 Javascript
layui的表单提交以及验证和修改弹框的实例
2019/09/09 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
2020/09/17 Javascript
vue中使用腾讯云Im的示例
2020/10/23 Javascript
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
Python 爬虫爬取指定博客的所有文章
2016/02/17 Python
对python内置map和six.moves.map的区别详解
2018/12/19 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
python selenium爬取斗鱼所有直播房间信息过程详解
2019/08/09 Python
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
澳大利亚百货商店中销量第一的商务衬衫品牌:Van Heusen
2018/07/26 全球购物
Kangol帽子官网:坎戈尔袋鼠
2018/09/26 全球购物
个人求职信范文分享
2013/12/13 职场文书
委托书的写法
2014/09/16 职场文书
个人对照检查材料思想汇报
2014/09/26 职场文书
检讨书范文500字
2015/01/28 职场文书
主持人大赛开场白
2015/05/29 职场文书
音乐剧猫观后感
2015/06/04 职场文书
基于python制作简易版学生信息管理系统
2021/04/20 Python
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python