如何在Laravel中加密大文件? 软件工程师@钟江华

Empcat的成功软件包应采用Laravel设计。用户可以上传任何大小的文件。出于安全原因,必须静态加密这些文件。

Laravel提供加密,但是它们主要用于加密值。它使用加密的帮助程序方法很好地加密了小文件,例如图像,但是在此过程中,必须将文件的内容加载到内存中,这对于大文件是个问题。

我寻找了解决此问题的软件包或解决方案?找到了此Stack Overflow的答案?此PHP解决方案,它基本上是Stack Overflow中描述的解决方案的PHP。

我决定为Laravel创建一个扩展包,该扩展包使用简单优雅的语法提供简单的文件加密/加密功能。

我称它为FileVault软件包,您可以在GitHub上观看它。如果您想跳过本教程,可以直接转到GitHub Warehouse并开始使用此软件包。扩展包中包含详细的使用文档。

手册:

在本教程中,我将详细描述加密大文件所需的所有步骤。

首先,使用Laravel安装程序创建一个称为安全程序的新Laravel项目。

新的安全计划

在撰写本文时,我正在使用Laravel v6.5.2。

由于我们使用了Laravel安装程序,因此我们创建了应用程序密钥并将其添加到我们的.env文件中。如果您使用其他安装方法,请不要忘记使用以下方法来创建新的应用程序密钥。

PHP工艺键:生成

由于使用Laravel Valet,我们必须为自己创建一个security-app.test域名。如果使用的是其他开发环境,则需要添加本地域名以指向新项目。

由于前杆已从Laravel 6移至Laravel UI,因此我们将安装laravel / ui扩展包。

作曲者需要卡特彼勒/ ui。开发人员:

接下来,我们将安装bootstrap ?认证雕刻。

php artisan ui bootstrap –auth:

做好一切。

npm install \\ \\ amp; npm运行开发人员:

我们还需要在.env文件中创建一个登录凭据数据库,并运行初始迁移。

PHP的工匠迁移

现在,我们可以创建一个新用户:登录以查看用户面板。

注意事项:在此显示中,我们将创建主要下载,但在您的应用程序中,您需要考虑使用较大文件的无线上传的更复杂的上传功能。

您可以使用的一个很好的扩展包是pion / laravel-chunk-upload。

Laravel Auth雕刻为我们创建了一个家庭/路线,即HomeController ? home.blade.php查看文件。

让我们编辑home.blade.php文件并将其添加到您的下载字段中。

\\ ltlt; form action =http://www.zhongjianghua.com/“ {{route(‘upload file‘)} method” method = method“” post“ enctype =” multipart / form-data“ class =” my-4“ \\ u0026 gt;

scsrf:

\\ ltlt; div class =http://www.zhongjianghua.com/“ snow-group” \\

\\ ltlt; div class =http://www.zhongjianghua.com/“自定义文件” \\

\\ ltlt;输入类型=http://www.zhongjianghua.com/“文件”类=http://www.zhongjianghua.com/“自定义文件输入” ID =http://www.zhongjianghua.com/“用户文件”名称=http://www.zhongjianghua.com/“用户文件” \\

\\ ltlt;标签类=http://www.zhongjianghua.com/“ custom-file-label” for =http://www.zhongjianghua.com/“ userFile” \\选择文件/标签>>

\\ ltlt; / div \\

\\ ltlt; / div \\

\\ ltlt;按钮类型=http://www.zhongjianghua.com/“提交”课程=http://www.zhongjianghua.com/“ btn btn-basic” \\上传\\ u0026 lt; /按钮

@if(会话()-\\\\具有(“消息”))

\\ ltlt; div class =http://www.zhongjianghua.com/“警报信号成功mt-3” \\

{{会话(“消息”))}

\\ ltlt; / div \\

@endif:

\\ ltlt; / ??

然后添加适当的路由。

在途中::帖子(\\\\ home \\ rsquo;,\\\\ u0026rsquo; [电子邮件保护] \\ u0026 rsquo;)-\\ u0026 gt;名称(\\ sup; uploadFile \\ rsquo;);

HomeController中添加了存储方法。此方法将上载的文件保留在具有当前用户ID(存储/程序/文件/ {user-id :)”的文件目录中。

注意事项:这是错误的,不应在生产环境中使用。为了使本手册更加紧凑,我们使用文件系统来获取用户文件,但是在生产环境中,您需要使用数据库来跟踪每个用户上传的文件。

\\ u0026 lt;?的PHP:

/ **

*保存使用的上传文件

*

* @param \\\\照亮\\\\ Http \\\\ $ $查询

* @return \\\\照亮\\\\ Http \\\\响应:

* /

公共功能存储(请求$ $查询)

{

if($ query- \\ u0026 gt; hasFile(“ userFile”)\\ u0026 amp; \\ uquery- \\ u0026 gt; file(“ userFile”)-\\ u0026 gt; isValid()){

存储:: putFile(‘files /‘。Author()-\\ u0026 gt; user()-\\ u0026 gt; id,$ query- \\ u0026 gt; file(“ userFile”)));

}

返回重定向()-\\路线(“家”)-\\与(“消息,”上传结束);

}

现在该加密用户上传的文件了。我们将安装文件存档扩展包。

作曲家需要一个soarecostin /文件文件夹

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/2083270b4e1faedf970ad6280f20f82a.html