laravel文件上传与下载

article/2025/11/3 23:30:14
https://github.com/Chumper/Zipper

github地址

composer require chumper/zipper

在这里插入图片描述
看到这个代表安装成功
代表路由

.
.
.
// package chumper/zipper
Route::get('zip', 'ZipController@index')->name('zip.index');
Route::post('zip/download', 'ZipController@download')->name('zip.download');
Route::post('zip/upload', 'ZipController@upload')->name('zip.upload');

创建一个控制器

php artisan make:controller ZipController

在这里插入图片描述
这个文件带有过滤功能 并且返回的是一个类.
列表所有日志文件#
app/Http/Controllers/ZipController.php

<?phpnamespace App\Http\Controllers;use File;
use Illuminate\Http\Request;class ZipController extends Controller
{public function index(){$logs = File::files(storage_path('logs'));return view('zip', compact('logs'));}
}

创建视图文件:

touch resources/views/zip.blade.php

在这里插入图片描述
填入如下内容:
resources/views/zip.blade.php

@extends('layouts.app')@section('title', 'chumper/zipper 扩展示例')@section('content')<div class="row"><form class="form-inline pull-right" method="POST" action="{{ route('zip.upload') }}" enctype="multipart/form-data">{{ csrf_field() }}<div class="form-group"><input type="file" name="logs" style="width:170px" required></div><button type="submit" class="btn btn-default">导入</button></form><form method="POST" action="{{ route('zip.download') }}">{{ csrf_field() }}<button class="btn btn-default" type="submit">批量下载</button><table class="table table-striped"><thead><tr><th></th><th>文件名</th><th>创建时间</th><th>最后修改时间</th></tr></thead><tbody>@foreach($logs as $log)<tr><th scope="row"><input type="checkbox" name="logs[]" value="{{ $log->getBasename() }}"></th><td>{{ $log->getBasename() }}</td><td>{{ Date('Y-m-d H:i:s', $log->getCtime()) }}</td><td>{{ Date('Y-m-d H:i:s', $log->getMtime()) }}</td></tr>@endforeach</tbody></table></form>
</div>
@endsection

在这里插入图片描述
接下来先写一个dowon的方法
在这里插入图片描述

.
.
.
use Zipper;.
.
.public function download(Request $request){// 打包文件名$name = 'logs-'.time().'.zip';// 创建 zip 文件   folder是文件的目录$zipper = Zipper::make($name)->folder('logs');//循环用户勾选的文件  logsforeach($request->logs as $log) {// 检查提交的文件是否存在$path = storage_path('logs/'.basename($log));if (!File::exists($path)) {continue;}// 将文件加入 zip 包$zipper->add($path);}// 关闭zip,一定要调用$zipper->close();// 返回下载响应,下载完成后删除文件return response()->download(public_path($name))->deleteFileAfterSend(true);}
}

在这里插入图片描述
代表下载成功
在这里插入图片描述
在这里插入图片描述
接下来完成上传解压的功能
在这里插入图片描述

.
.
.public function upload(Request $request){if ($request->logs) {//加载上传的文件$zipper = Zipper::make($request->logs);// 可以使用 listFiles() 查看 zip 文件内容logger('zip file list:');logger($zipper->listFiles());//解压所有以.log结尾的文件$zipper->folder('logs')->extractMatchingRegex(storage_path('logs'), '/\.log$/');}//最终跳转回列表页面return redirect()->route('zip.index');}
.
.
.

准备测试文件
在这里插入图片描述
在这里插入图片描述
这里上传成功


http://chatgpt.dhexx.cn/article/x7xnuYhh.shtml

相关文章

Laravel 5.7下载、安装

本地安装laravel&#xff0c;php环境要配置好&#xff0c;推荐xmapp一键搭建。 1、程序包直接从官方下载&#xff0c;官方开源地址:https://github.com/laravel/laravel(当然也可从此网站&#xff1a;http://www.golaravel.com/download/ 下载一键安装包&#xff0c;下载下来就…

【laravel】laravel的下载安装

下载 Laravel Laravel 利用 Composer&#xff08;Composer 中文&#xff09;来管理其自身的依赖包。因此&#xff0c;在使用 Laravel 之前&#xff0c;请务必确保在你的机器上已经安装了 Composer 。 上面是laravel中文对于如何安装使用laravel的官方解释&#xff0c;不同于大多…

IE浏览器不能访问其他浏览器能正常访问

IE浏览器不能访问 而其他浏览器能正常访问 解决方法 -重置 1 win x 键&#xff0c;然后点击 windows powerShell &#xff08;以管理员方式运行&#xff09; 2 输入下面2条命令&#xff0c;记得回车 Netsh winsock resetnetsh advfirewall reset如下图所示&#xff1a; 运行…

浏览器访问Linux的Tomcat

浏览器访问Linux的Tomcat 1、在Linux下启动tomcat服务器 2、打开防火墙&#xff0c;开放8080端口

浏览器访问网页流程

从我们输入URL并按下回车键到看到网页结果之间发生了什么&#xff1f;换句话说&#xff0c;一张网页&#xff0c;要经历怎样的过程&#xff0c;才能抵达用户面前&#xff1f;下面来从一些细节上面尝试一下探寻里面的秘密。 前言&#xff1a;键盘与硬件中断 说到输入URL&#…

浏览器HTTPS访问问题

1、问题描述 搭建了HTTPS服务环境 https://172.16.0.17 &#xff0c;用浏览器访问时&#xff0c;出现提示信息&#xff1a; “您的连接不是私密连接”&#xff08;Chrome&#xff09;&#xff0c;如下图所示 “您的链接并不安全”&#xff08;Firefox&#xff09;&#xff0…

win10如何通过局域网从浏览器访问ip

1.打开控制面板&#xff0c;找到windows防火墙&#xff0c;找到高级设置&#xff0c;点击 点击公用配置文件下面的 Windows Defender 防火墙属性 3.修改预配置文件、专用配置文件、公用配置文件的入站连接&#xff0c;更改为运行 4.如下显示全是允许&#xff0c;就可以局域…

如何在Chrome、IE里访问国密网站

随着国密网站的增多&#xff0c;很多常用浏览器不支持国密SSL网站访问的问题日益突出&#xff0c;如Chrome 、Edge、IE 等浏览器均不能访问国密SSL网站。而很多政府、银行、科研机构仍然运行着面向IE开发的应用&#xff0c;同时这些应用需要依赖 ActiveX 插件来完成特定的操作。…

计算机无法访问浏览器时的查验方法

[TOC]计算机无法访问浏览器时的查验方法&#xff08;“科学上网”后遗症&#xff0c;直接看最后面&#xff09; 计算机网络故障排除一般采用“自底向上”的方式 我们知道&#xff0c;OSI参考模型中低层是为其上层提供服务的&#xff0c;因此一般进行网络故障排查也是由底层到…

curl能访问但是浏览器不能访问

在Virtual Machines中安装centos7&#xff0c;centos7中运行docker docker运行两个nginx容器&#xff0c;开放8001,8002端口 查看防火墙状态 查看开放端口 curl可以访问 浏览器不能访问&#xff01; 问题解决&#xff1a; 浏览器设置了代理&#xff01; 浏览器设置了代理&a…

浏览器访问web服务器经过了哪些过程

文章目录 一、URL输入二、DNS解析三、建立TCP连接四、发送HTTP/HTTPS请求五、服务器响应请求六、浏览器解析渲染页面七、HTTP请求结束&#xff0c;断开TCP连接八、总结 一、URL输入 输入URL URL&#xff0c;全称叫做统一资源定位符&#xff0c;用于定位互联网上的资源&#xf…

浏览器访问服务器的过程

1、在浏览器地址栏中输入网址 2、浏览器通过用户在地址栏中输入的URL构造HTTP请求报文&#xff08;请求报文一般没有请求体&#xff09; 3、浏览器发起 DNS 解析请求&#xff0c;将域名转换为 IP 地址 4、浏览器将请求报文发送给服务器 5、服务器接收请求报文&#xff0c;并解…

浏览器中网址访问过程详解

前言 当我们在浏览器中输入一个网址,比如www.google.cn,浏览器就会加载出百度的主页。那么浏览器背后完成的具体是怎么样的呢? 总结起来大概的流程是这样的: (1)浏览器本身是一个客户端,当你输入URL的时候,首先浏览器会去请求DNS服务器,通过DNS获取相应的域名对应的…

浏览器访问IPv6地址

以本地的ipv6为例&#xff1a; 环境&#xff1a;win10、tomcat服务器 注&#xff1a;这里的tomcat服务器是用来帮助测试本地的ipv6地址可用性&#xff0c;如果是外网的的ipv6&#xff0c;直接访问即可 步骤如下&#xff1a; 一、首先查看本机的ipv6地址&#xff0c;在cmd命令…

浏览器访问网站

这个仅仅是我个人对于访问网站流程的一个理解&#xff0c;我相信肯定有不全面也有错漏的地方&#xff0c;如果是的各位可以给我指出来让我可以有所提高~ 五层协议体系结构中各层运用到的协议&#xff1a; 应用层&#xff1a;HTTP、DNS&#xff1b; 传输层&#xff1a;TCP、…

Selenium模拟浏览器访问

目录 一、selenium简介 1.1、什么是selenium 1.2、为什么使用selenium 1.3、安装selenium 1.3.1、谷歌浏览器驱动下载 1.3.2、谷歌驱动和谷歌浏览器版本之间的映射表 1.3.3、查看谷歌浏览器版本 1.3.4、安装selenium库 二、selenium的使用 2.1、selenium的使用步骤 2.2、举例…

浏览器禁止访问某个网站

浏览器要禁止访问某个网站&#xff0c;可以在电脑中打开 C:\Windows\System32\drivers\etc这个位置&#xff0c;找到hosts文件。 将需要禁止访问的网址输入&#xff0c;并在前面加上127.0.0.1即可。 如图所示。然后关闭保存。

如何通过浏览器访问本地电脑文件

如何通过浏览器访问本地电脑文件 首先&#xff0c;打开控制面板&#xff0c;找到"程序"点击打开。 找到“启用或关闭windows功能”&#xff0c;点击打开 找到“Internet Information Services”(Internet信息服务)&#xff0c;将它的子项及子项的子项全部勾选&…

浏览器访问网址过程详解

前言 首先要了解几个参数的含义&#xff1a; IP地址&#xff1a;是指互联网协议地址。 子网掩码&#xff1a;子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩&#xff0c;它用来指明一个IP地址的哪些位标识的是主机所在的子网&#xff0c;以及哪些位标识的是主机的位…

【无标题】浏览器是如何访问的? 超详细解析过程

浏览器分析链接指向网页的URL。浏览器向DNS请求解析 URL 的 IP 地址。域名系统DNS 解析出 URL 的 IP 地址。浏览器与服务器建立 TCP 连接。浏览器发出取文件命令&#xff1a;GET/chn/yxsz/index.htm。服务器&#xff08;URL所在&#xff09;给出响应&#xff0c;把文件 index.h…