laravel文件上传与下载
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');}
.
.
.
准备测试文件
这里上传成功
laravel文件上传与下载相关推荐
- Angular 文件上传与下载
Angular文件上传与下载 文件上传 方式1 使用NG ZORRO中的组件. 文件下载 方式1 直接下载 方式2 通过HTTP请求后端数据的方式进行下载 文件上传 方式1 使用NG ZORRO中的组 ...
- SpringBoot下文件上传与下载的实现
原文:http://blog.csdn.net/colton_null/article/details/76696674 SpringBoot后台如何实现文件上传下载? 最近做的一个项目涉及到文件上传 ...
- Python实现阿里云aliyun服务器里的文件上传与下载
Python实现阿里云服务器里的文件上传与下载 Python实现阿里云服务器里的文件上传与下载 背景: 正文: 预备环境: 构想: 实现: 注意: 结尾 018.4.15 背景: 老实说,因为现实的各 ...
- java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息...
1.java使用Jsch实现远程操作linux服务器进行文件上传.下载,删除和显示目录信息. 参考链接:https://www.cnblogs.com/longyg/archive/2012/06/2 ...
- php从ftp下载文件到本地,php使用ftp实现文件上传与下载功能
本文实例为大家分享了php ftp文件上传与下载的具体代码,供大家参考,具体内容如下 ftp文件上传 php自带有ftp操作的函数包,一个比较简单实现的ftp文件上传操作可以通过以下几个步骤来完成: ...
- 2014-07-23 利用ASP.NET自带控件实现单文件上传与下载
效果图 上传文件页面: 下载文件页面: 1.母版页site.Master <%@ Master Language="C#" AutoEventWireup="t ...
- PHP文件上传,下载,Sql工具类!
PHP文件上传,下载,Sql工具类! 对文件大小,文件类型 同名覆盖 中文转码的操作,可直接使用 前台 upload.html <!DOCTYPE html> <html> & ...
- WSE3.0构建Web服务安全(4):MTOM消息传输优化和文件上传、下载
MTOM消息优化传输机制主要应用于大量数据的传输,很多文章中也直接得出结论:使用MTOM文件传输效率高.为什么MTOM的数据传输效率会比别的方式要高?MTOM真的如此完美吗,它有什么不足?什么情况下使 ...
- [转载]ASP.NET Core文件上传与下载(多种上传方式)
ASP.NET Core文件上传与下载(多种上传方式) 前言 前段时间项目上线,实在太忙,最近终于开始可以研究研究ASP.NET Core了. 打算写个系列,但是还没想好目录,今天先来一篇,后面在整理 ...
- 科普|不同协议下远程服务器文件上传_下载优劣对比
作为一个程序员,如果不知道如何进行远程服务器的文件上传与下载,实在是一件尴尬的事情.打开百度,搜索「远程服务器 上传下载」,你能得到 63,100,000 个搜搜结果,五花八门的操作方式的让人眼花缭乱 ...
最新文章
- NLP入门之路及学习方法:从任务实践入手!
- Quartz2D简单绘制之不规则形状
- java并发中的延迟初始化
- 数据产品经理进阶之路
- -moz火狐 (firefox)CSS
- 容器编排技术 -- Kubernetes kubectl annotate 命令详解
- postgre 生成数据库html文档_还在手动整理数据库文档?试试这个工具
- [转]Flex 中的皮肤
- 【渝粤题库】陕西师范大学200061语言学概论作业(高起本、专升本)
- 51单片机自学笔记(一)——keil软件的使用
- bat实现黑客流星雨BAT_bat黑客帝国
- 4.8 HD-GR GNSS导航软件源码
- 奥运门票系统down机的技术问题
- vue动态style设置背景图片
- 保利威视sdk与腾讯bugly 冲突解决方案
- 软件开发项目风险管理的几点体会
- 常用AF对焦算法详解
- Mysql 备份工具XtraBackup增量备份
- 《小白兔到大黑牛》第十一篇yum命令的总结
- 如何获取汉字对应的拼音