laravel中图片的删除

一、总结

一句话总结:

laravel里面删除的话还是建议用Storage的delete方法,不建议用原生php的unlink方法,不然没找到文件可能会报异常

二、laravel删除图片

转自或参考:laravel删除图片
https://blog.csdn.net/weixin_39815001/article/details/84669705

/**
* 删除信用卡
* @param Request $request
* @return array|\Illuminate\Http\JsonResponse
* @throws \App\Exceptions\CustomException
*/
public function modifyCreditCardImg(Request $request)
{
$valid = Validator::make($request->all(), [
'id' => 'required|string|size:36'
]);
if ($valid->fails()) {
return array(
'code' => ExceptionErrorCode::CODEMUST,
'message' => $valid->errors()->first(),
'data' => $valid->errors()->first()
);
}
$credit_card = CreditCardImages::where(['id' => $request->id])->get()->first();
Storage::delete(str_replace('storage', 'public', $credit_card->image_positive));
Storage::delete(str_replace('storage', 'public', $credit_card->image_back));
CreditCardImages::where(['id' => $request->id])->delete();
return responseMessage([], ExceptionErrorCode::OPERATOR_OK);
}

三、laravel 图片上传和删除

转自或参考:laravel 图片上传和删除
https://blog.csdn.net/minose/article/details/79919649

记录一下过程,使用php原生的方法,上传图片后把图片的路径存储到了数据库。

$file =$request->file('pic');
$allowed_extensions = ["png","jpg","jpeg"];
if ($file->getClientOriginalExtension() && !in_array($file->getClientOriginalExtension(), $allowed_extensions)) {
return redirect()->back()->withInput()->withErrors("只允许上传.jpg .png .jpeg");
}
$path = 'storage/uploads/runner/';
$extension = $file->getClientOriginalExtension();
$fileName = str_random().'.'.$extension;
$file->move($path,$fileName);
$filePath = asset($path.$fileName);
$runner->pic = $filePath;

在删除的时候使用php的unlink("$path")方法,这里要注意的是 $path是laravel下public目录后的相对路径,需要对字符串进行拼接。

$path = $runner->pic;
$pos = strpos($path, 'storage');
/*dd($pos);*/
$path = substr($path,$pos,strlen($path)); unlink("$path");

laravel中图片的删除的更多相关文章

  1. Laravel从模型中图片的相对路径获取绝对路径

    在模型product.php中增加以下方法.数据库图片字段为image.存储的图片相对路径 public function getImageUrlAttribute() { // 如果 image 字 ...

  2. Laravel中的日志与上传

    PHP中的框架众多,我自己就接触了好几个.大学那会啥也不懂啥也不会,拿了一个ThinkPHP学了.也许有好多人吐槽TP,但是个人感觉不能说哪个框架好,哪个框架不好,再不好的框架你能把源码读上一遍,框架 ...

  3. ASP.NET MVC图片管理(删除)

    上星期有写了一篇<ASP.NET MVC图片管理(上传,预览与显示)>http://www.cnblogs.com/insus/p/4620420.html 它只实现了上传功能,即时预览以 ...

  4. cron以及在laravel中使用cron

    yum install vixie-cron yum install crontabs /bin/systemctl restart crond.service #启动服务 /bin/systemct ...

  5. Laravel中的队列处理

    Laravel中的队列处理 队列介绍 为什么要有消息队?这里先对其进行一个简单的介绍,方便还不了解的同学理解.在面向对象里,有一个很简单的概念--消息传递,而消息队列就可以在它上面扩展一下,把它说的更 ...

  6. 在Laravel中一步一步创建Packages

    首先要看一下Laravel官方文档,这是最新4.2的文档,假设想看中文的话点击此处,基本一样.这个github上的库setup-laravel4-package,也是一步一步介绍怎样创建一个包.并关联 ...

  7. 【社交系统研发日记】如何在 Laravel 中 “规范” 的开发验证码发送功能

    顺便发个小通知:7月15日ThinkSNS+开源版发布,同时非开源的APP也走出内测阶段,体验二维码也全面发布体验. 什么是ThinkSNS ? ThinkSNS(简称TS),一款全平台综合性社交系统 ...

  8. Laravel 中缓存驱动的速度比较

    缓存是web开发中重要的一部分,我相信很多人和我一样,经常忽略这个问题. 随着工作经验的累积,我已经意识到缓存是多么的重要,这里我通过 Scotch 来解释一下它的重要性. 通过观察发现,Scotch ...

  9. Laravel 中使用 JWT 认证的 Restful API

    Laravel 中使用 JWT 认证的 Restful API 5天前/  678 /  3 / 更新于 3天前     在此文章中,我们将学习如何使用 JWT 身份验证在 Laravel 中构建 r ...

随机推荐

  1. Http状态吗504问题复盘

    原因分析:504错误一般与nginx.conf配置有关,主要参数有:fastcgi_connect_timeout.fastcgi_send_timeout.fastcgi_read_timeout. ...

  2. java程序,在windows下设置为开机自启动

    1.制作可运行jar包 2.设置开机自动,后台运行,确保不关 一下这几个方法是我试过的,由于有不同的问题,以后慢慢总结 (1).制作bat文件,放在"启动"里面 (2).设置组策略 ...

  3. websocket趣说_转

    websocket协议:https://tools.ietf.org/html/rfc6455 作者:Ovear链接:https://www.zhihu.com/question/20215561/a ...

  4. systemd_journal_no_entries问题解决

    问题: #journalctl Journal file /var/log/journal/410/system@0.journal~ uses an unsupported feature, ign ...

  5. (Linux基础学习)第二章:CentOS7.4安装教程

    001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 ...

  6. 利用Python openpyxl操作Excel

    from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = ...

  7. Java精通并发-wait与notify方法案例剖析与详解

    在上一节中对Object的wait.notify.notifyAll方法进行了总结,这次举一个具体案例来进行巩固,题目如下: 编写一个多线程程序,实现这样的一个目标: 1.存在一个对象,该对象有一个i ...

  8. linux系统编程综合练习-实现一个小型的shell程序(四)

    上节中已经对后台作业进行了简单处理,基本上要实现的功能已经完了,下面回过头来,对代码进行一个调整,把写得不好的地方梳理一下,给代码加入适当的注释,这种习惯其实是比较好了,由于在开发的时候时间都比较紧, ...

  9. rocketmq那些事儿之入门基础

    分布式消息队列中间件作为高并发系统的核心组件之一,能够帮助业务系统解构提升开发效率和系统稳定性,其复杂性可见一斑,作为核心组件,有必要去深入了解学习 前言 分布式消息队列中间件主要具有以下优势: 削峰 ...

  10. TODO 竞品分析方法——关于导航评测的一些笔记

    参考:移动App性能评测与优化 chapter4讲了地图怎么测,虽然不测地图,但是里面有关竞品分析的部分写得非常好,很多解决方案真的很精彩.记录一下. 我之前的竞品分析测试,通常是很简单的竞品数据层面 ...