【发布时间】:2016-04-10 00:16:50
【问题描述】:
在我的 webapp 中,用户可以上传文件。在保存和存储之前,文件的内容使用以下方式加密:
Crypt::encrypt(file_get_contents($file->getRealPath()));
然后我使用 Laravel 自带的文件系统来移动文件
Storage::put($filePath, $encryptedFile);
我有一个表来存储有关每个文件的信息,其中包含以下列:
- 身份证
- 文件路径
- 文件名
- original_name(包括扩展名)
现在我希望用户能够下载这个加密文件。但是,我无法解密文件并将其返回给用户。在 Laravel 文档的 file downloads response section 中,它建议这样做:
return response()->download($pathToFile, $name, $headers);
它想要一个很好的文件路径,但在什么时候我可以解密文件内容以便它实际上是可读的?
我似乎可以做到这一点:
$encryptedContents = Storage::get($fileRecord->file_path);
$decryptedContents = Crypt::decrypt($encryptedContents);
...但我不知道如何将其作为具有指定文件名的下载返回。
【问题讨论】:
标签: php laravel encryption file-upload laravel-5