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 头信息作为第三个参数传递到该方法

  • 相关阅读:
    如何在SharePointDesigner订制页面里判断用户权限
    为SharePoint 2010中的FBA创建自定义登录页面
    javascript中的this到底指什么?
    用JAVASCRIPT实现静态对象、静态方法和静态属性
    简单的HoverMenu效果
    JavaScript 调用sharepoint内置webservice 更新item
    域中搜索用户email
    服务控制管理器错误
    SQL Server 2008/2005不能修改表结构的解决方法
    类集对枚举的支持
  • 原文地址:https://www.cnblogs.com/vincePp/p/7324815.html
Copyright © 2011-2022 走看看