微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Laravel:将上传的文件保存到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'),
    ]);

但每当我检查我的会话时,在我上传文件后,我得到“文件”的值为“null”.

由于我每个Ajax上传多个文件,我不确定它是否会破坏我将文件放入Session的方式.

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

提前致谢.

解决方法:

会话仅针对小的,微不足道的数据,而不是大量的数据和文件,如图像.

将图像存储在正常目录中,然后在用户完成表单时将其移动到另一个目录.有一个垃圾收集”脚本定期运行,如果用户在一段时间后没有完成表单,则会清除第一个目录中的任何图像.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐