gpt4 book ai didi

php - Laravel:将上传的文件保存到 session 中

转载 作者:可可西里 更新时间:2023-10-31 23:54:45 25 4
gpt4 key购买 nike

与其将文件直接上传并移动到服务器上的某个位置,我宁愿将其保存到 Session 中,并在以后根据条件上传。

这是我目前将文件保存到我的服务器的方法:

public function step3store() {

$file = Input::file('file');
$identifier = date("Ymd") . " - " . Session::get('lastName') . "_" . Session::get('firstName');

$destinationPath = base_path() . '/uploads/'. $identifier ;
$extension = $file->getClientOriginalExtension();
$filename = $identifier . " - " . uniqid() . "." . $extension;

$upload_success = Input::file('file')->move($destinationPath, $filename);

if( $upload_success ) {
return Response::json('success', 200);
} else {
return Response::json('error', 400);
}

}

我正在考虑改用这样的东西:

    Session::put([
'file' => Input::get('file'),
]);

但是每当我检查我的 session 时,在我上传一个文件后,我得到"file"的值“空”。

由于我通过 Ajax 上传多个文件,我不确定它是否以某种方式破坏了我将文件放入 session 的方式。

那么,如何将每个 Ajax 的多个文件保存到 Laravel session 中?

提前致谢。

最佳答案

session 仅适用于小而琐碎的数据,不适用于图像等大数据和文件。

像往常一样将图像存储在一个目录中,如果用户完成表单,则将它们移动到另一个目录。有一个定期运行的“垃圾收集”脚本,可以在用户一段时间后未完成表单的情况下清除第一个目录中的所有图像。

您的句子“只有到那时我才想使用真正的服务器资源”是没有意义的,就好像您要将文件保存到 session 中那样,仍然会使用您的服务器资源。 session 被写入磁盘。如果您要将文件作为 BLOB 存储到数据库中也是一样的(也不要这样做)。您仍在使用服务器的资源。因此,将文件保存到 session 的理论不会停止使用服务器的资源。

关于php - Laravel:将上传的文件保存到 session 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28627575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com