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. buffer和cache区别?

    写入数据到内存里,这个数据的内存空间称为缓冲区(buffer) 从内存读取数据,这个存储数据的内存空间称为缓存区(cache) 由于大部分网站以读取为主,写入为辅,所以并发写入一般不是问题.

  2. MySQL Hardware--FIO压测

    FIO参数 .txt 支持文件系统或者裸设备,-filename=/dev/sda2或-filename=/dev/sdb direct= 测试过程绕过机器自带的buffer,使测试结果更真实 rw= ...

  3. Nginx配置文件示例

    Nginx的配置文件示例:(仅供参考) 强烈建议先将默认的配置文件备份再进行操作! 请根据自己项目的实际路径来配置相关路径! uwsgi配置文件请参考:uwsgi配置文件示例 # For more i ...

  4. KVM虚拟化之嵌套虚拟化nested

    本文测试物理机为centos6.5 物理机使用Intel-V虚拟化架构,安装qemu-kvm版本0.12 我们知道,在Intel处理器上,KVM使用Intel的vmx(virtul machine e ...

  5. 使用Cloudera Manager搭建YARN集群及YARN HA

    使用Cloudera Manager搭建YARN集群及YARN HA 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.使用Cloudera Manager搭建YARN集群 1& ...

  6. 完成N!的程序编写: 1、用循环算法编写; 2、用递归算法编写;

    完成N!的程序编写 1.用循环算法编写 #include<iostream> using namespace std; int main(){ int n; long result = 1 ...

  7. k8s安装之grafana.yaml

    这个作展示,够用. 为了使用nginx统一管理, 这里将grafana放在子目录下. - name: GF_SERVER_ROOT_URL  value: "%(protocol)s://% ...

  8. deb: No command ‘deb’ found

    deb: No command ‘deb’ found Posted on September 19, 2010 Let’s take a simple example of running the ...

  9. Sharding-JDBC(三)3.1.0版本实践

    目录 一.Sharding-JDBC依赖 二.代码实践 三.源码分析 在上一篇博文中,介绍了Sharding-JDBC的分片策略.分片键和分片算法的基本概念,以及2.0.3版本可以支持和无法支持的使用 ...

  10. 0029redis单机版环境搭建

    linux环境下安装单机版redis,主要分为如下几步: 1. 安装gcc 2.下载安装包 3.解压安装包 4.进入解压目录并执行make和make install命令 5.查看默认安装目录 6.更改 ...