PHP Laravel学习之文件上传与下载

官方文档传送门:文件上传文件下载


文件上传

form表单\resources\views\form.blade.php

 <form action = "{{route('posts.store')}}"  method ="post" enctype ="multipart/form-data" >
        {{ csrf_field() }}
        <table>
           <tr>
                <td>photo</td>
                <td><input type = "file" name = "photo" /></td>
            </tr>
            <tr>
                <td><input type = "submit" value = "submin"/></td>
            </tr>
        </table>
 </form>

提交到控制器:PostController@store

public function store(Request $request) {
      //判断hasfile()上传文件是否存在并且isValid()文件是否上传出错:注意这里的photo指的是form表单里的name属性
      if($request->hasfile('photo') && $request->file('photo')->isValid()){
        //获取请求中的photo        
        $photo = $request->file('photo');
        //extension()基于文件内容判断文件扩展名
        $extension = $photo->extension();
        //上传到\storage\app\photo
        $store_result = $photo -> store('photo');
        //上传到\storage\app\photo并且重命名为test.jpg
        //$store_result = $photo->storeAs('photo', 'test.jpg');
        $output = [
            'extension' => $extension,
            'store_result' => $store_result
        ];
        echo "上传成功~</br>";
        //打印出文件扩展名和上传路径
        print_r($output);
        exit();
      }else{
          echo "上传出错";
      }
 }

注意在上传文件前,得先修改php.ini

;extension=fileinfo => extension=fileinfo
浏览器访问:http://localhost:8000/form

photo upload

选择一个文件然后提交
可在\storage\app\photo中看到上传的文件

文件下载

download方法用于生成强制用户浏览器下载给定路径文件的响应
storage_path用于获取路径
路由如下web.php:

Route::get('download/response', function() {
    return response()->download(storage_path('app/photo/test.jpg'), '测试图片.jpg');
});

浏览器访问:http://localhost:8000/download/response
即可完成下载

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,224评论 19 139
  • 本文包括:1、文件上传概述2、利用 Commons-fileupload 组件实现文件上传3、核心API——Dis...
    廖少少阅读 14,318评论 5 91
  • php.ini设置,上传大文件: post_max_size = 128Mupload_max_filesize ...
    bycall阅读 11,807评论 3 64
  • 项目开发常见流程介绍 需求调研 项目经理------>需求说明书 软件设计书 项目经理------>...
    _1633_阅读 5,431评论 1 6
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,062评论 3 119

友情链接更多精彩内容