在我的网络应用程序中,用户可以上传文件。在保存和存储之前,文件的内容使用如下方式进行加密:
Crypt::encrypt(file_get_contents($file->getRealPath()));
然后我使用Laravel附带的文件系统来移动文件
Storage::put($filePath, $encryptedFile);
我有一个表来存储每个文件的信息,其中包含以下列:
-
身份证件
-
文件路径(_P)
-
文件名
-
original_name(包括扩展名)
现在我希望用户能够下载这个加密文件。然而,我在解密文件并将其返回给用户时遇到了问题。在
file downloads response section
在Laravel文档中,它建议这样做:
return response()->download($pathToFile, $name, $headers);
它需要一个很好的文件路径,但在什么时候我可以解密文件内容,使其真正可读?
我似乎能够做到这一点:
$encryptedContents = Storage::get($fileRecord->file_path);
$decryptedContents = Crypt::decrypt($encryptedContents);
…但我不知道如何以指定文件名将其作为下载返回。