zoukankan      html  css  js  c++  java
  • #Laravel笔记# 文件上传

    在Laravel表单请求中,获取上传的文件对象:$file=$request->file('name');

    1.在文件对象中,我们可以获得以下主要信息:

    //文件的扩展名
    $file->getClientOriginalExtension();
    //文件的原名
    $file->getClientOriginalName();
    //文件大小
    $file->getSize();
    //文件临时的绝对路径
    $realpath = $file->getRealPath();
    //把临时文件移动到指定的位置,并重命名
    $file->move($path,$name);

    当$file->move返回文件对象结果时,说明文件上传成功

    2.在laravel中还是通过$file->store($path)来上传文件

    $file->store($path)只需要指定$path目录名即可,且该目录名在storage/app目录下,系统会MD5文件内容自动生成文件名,此返回值为文件路径+文件名

    如果需要自定义文件名或者文件过大时!可使用$file->storeAs($path,$name)自定义文件名,同样该目录在storage/app目录下,返回值为文件路径+文件名

    以上2中方法都可以进行文件存储,但是第一种可以把文件存储项目的任意位置中,而第二种只能存储在strorage/app目录下的任意位置。当上传的文件需要考虑到安全,防止盗链等问题时应把文件上传到非public目录下。

    3.文件的响应(浏览器中显示文件)

    return response()->file($pathToFile);

    $pathToFile为文件所在路径和文件名;

    4.文件强制下载

    return response()->download($pathToFile);

    return response()->download($pathToFile,$name,$headers);

    生成强制用户浏览器下载给定路径文件的响应,download 方法接受文件名作为第二个参数,该参数决定用户下载文件的显示名称,你还可以将 HTTP 头信息作为第三个参数传递到该方法

  • 相关阅读:
    Java实现 LeetCode 136 只出现一次的数字
    Java实现 LeetCode 136 只出现一次的数字
    Java实现 LeetCode 136 只出现一次的数字
    Java实现 LeetCode 135 分发糖果
    Java实现 LeetCode 135 分发糖果
    Java实现 LeetCode 135 分发糖果
    Java实现 LeetCode 134 加油站
    Java实现 LeetCode 134 加油站
    Java实现 LeetCode 134 加油站
    Java实现 LeetCode 133 克隆图
  • 原文地址:https://www.cnblogs.com/vincePp/p/7324815.html
Copyright © 2011-2022 走看看