zoukankan      html  css  js  c++  java
  • 黑马lavarel教程---7、文件上传

    黑马lavarel教程---7、文件上传

    一、总结

    一句话总结:

    在laravel里面实现文件的上传是很简单的,压根不用引入第三方的类库,作者把上传作为一个简单的http请求看待的。

    1、在lavarel中作者把文件上传看做什么?

    一个简单的http请求

    在laravel里面实现文件的上传是很简单的,压根不用引入第三方的类库,作者把上传作为一个简单的http请求看待的。

    2、要想表单能够上传(此处不考虑异步方式),则表单应该具备哪些要求?

    a. 具有form标签,method必须为post,必须具备enctype属性;
    b. 至少有一个input类型为file类型; 得具备一个提交按钮;

    3、lavarel文件上传错误状态码error的取值?

    0-7,但是没有5,0表示成功。

    4、文件上传的本质(核心思想)?

    文件的移动,move_upload_file

    5、文件上传步骤?

    a. 先去判断文件是否正常和存在
    b. 获取相关的信息(可选)
    c. 保存文件(其实就是移动文件到新的目录)

    6、关于项目中使用路径的说明?

    如果路径是给php代码使用的,则路径建议使用“./”形式;如果路径是给浏览器使用的则建议使用“/”形式。

    7、获取文件上传错误提示的代码示例?

    $request -> file(‘avatar’) -> getErrorMessage();

    二、文件上传

    在laravel里面实现文件的上传是很简单的,压根不用引入第三方的类库,作者把上传作为一个简单的http请求看待的。使用时可以参考手册。

    (1)修改表结构,添加一个字段。

    ALTER TABLE `member`

    ADD COLUMN `avatar`  varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `email`;

     

    (2)创建添加数据的表单和路由

    添加路由:/home/test/test14

     

    创建展示视图的方法并且展示视图

     

    创建视图页面并且添加csrf_token

    回顾:要想表单能够上传(此处不考虑异步方式),则表单应该具备哪些要求?

    答:

           a. 具有form标签,method必须为post,必须具备enctype属性;

           b. 至少有一个input类型为file类型;

           c. 得具备一个提交按钮;

     

    (3)在控制器中,添加上传业务处理逻辑

    【此处操作建议查看手册】  

     

    关于上传错误状态码error的取值:0-7,但是没有5,0表示成功。

    问题:请你说出文件上传的本质(核心思想)?文件的移动,move_upload_file

     

    更多的方法请访问:

    http://api.symfony.com/3.0/Symfony/Component/HttpFoundation/File/UploadedFile.html

    思路:

             a. 先去判断文件是否正常和存在

             b. 获取相关的信息(可选)

             c. 保存文件(其实就是移动文件到新的目录)

    获取文件的方式:既可以通过file方法来获取也可以通过动态属性来获取,二选一。

    (4)创建上传文件的保存路径

     

     

    关于项目中使用路径的说明:

    如果路径是给php代码使用的,则路径建议使用“./”形式;如果路径是给浏览器使用的则建议使用“/”形式

    为了保存的文件不被覆盖,建议在保存文件的同时对文件名进行尽量唯一的重命名:

     

    (5)注意:如果使用的是create方法添加数据到数据表中,则这里还要修改一下模型里面的一个fillable属性,代表允许插入到数据库的字段

     

    将数据写入数据表:

     

    数据表的结果:

     

    如果上传出现了错误,一定要使用获取错误信息的方法:

     

    $request -> file(‘avatar’) -> getErrorMessage();

     
  • 相关阅读:
    形象理解ERP(转)
    禁用windows server 2008 域密码复杂性要求策略
    How to adding find,filter,remove filter on display method Form
    Windows Server 2008 R2激活工具
    How to using bat command running VS development SSRS report
    Creating Your First Mac AppGetting Started
    Creating Your First Mac AppAdding a Track Object 添加一个 Track 对象
    Creating Your First Mac AppImplementing Action Methods 实现动作方法
    Creating Your First Mac AppReviewing the Code 审查代码
    Creating Your First Mac AppConfiguring the window 设置窗口
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/11561249.html
Copyright © 2011-2022 走看看