黑马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();

转载于:https://www.cnblogs.com/Renyi-Fan/p/11561249.html

黑马lavarel教程---7、文件上传相关推荐

  1. 超详细的实现上传文件功能教程,文件上传实现。

    重要声明:本文章仅仅代表了作者个人对此观点的理解和表述.读者请查阅时持自己的意见进行讨论. 本文更新不及时,请到原文地址浏览:<超详细的实现上传文件功能教程,文件上传实现.>. 一.文件上 ...

  2. bottle 文件服务器,python bottle 框架基础教程:文件上传 | linux系统运维

    文件上传,需要注意的是前端html的form表单中,要添加 enctype="multipart/form-data"属性,否则无法上传文件.在后端,用request.files方 ...

  3. struts2教程--实现文件上传下载

    Struts2文件上传下载 一.Struts2文件上传 提供 FileUpload 拦截器,用于解析 multipart/form-data 编码格式请求,解析上传文件的内容 fileUpload拦截 ...

  4. spring boot基础教程之文件上传下载

    一文件上传 文件上传主要分以下几个步骤: (1)新建maven java project: (2)在pom.xml加入相应依赖: (3)新建一个文件上传表单页面; (4)编写controller; ( ...

  5. 中国菜刀使用教程--ctf 文件上传

    首先把包含一句话的文件上传,php内容文件如下: <?php eval($_POST['a']); ?> 如果会过滤 <? 和 php 关键字,可以使用长标签 <script ...

  6. 菜鸟教程php 文件上传,php入门学习知识点三 PHP上传

    if(is_uploaded_file($_FILES["Imgs"]["tmp_name"])){ $phpupfile=$_FILES["Imgs ...

  7. Flask 的完全使用教程(文件上传下载,cookie,session,template使用)

    Flash是python下的一个轻量级web服务框架,通过Flash可以快速的搭建api服务器和各位网站,在深度学习中Flash用的最多的就是模型的部署.配合上一些c++ dll库的调用,比如这个库( ...

  8. 最全面的SpringMVC教程(五)——文件上传与下载

    前言 本文为 [SpringMVC教程]文件上传与下载 相关知识,具体将对使用MultipartResolver处理文件上传的步骤,两种文件下载方式(直接向response的输出流中写入对应的文件流. ...

  9. 文件上传漏洞 — ::$DATA绕过、点和空格绕过

    web渗透测试最全实战课程--渗透测试视频教程-信息安全-CSDN程序员研修院 文件上传漏洞的相关讲解基于upload-labs靶场,搭建教程见文件上传漏洞靶机搭建教程 ::$DATA绕过 补充知识 ...

  10. 文件上传漏洞 — 前端JS绕过、MIME类型绕过

    文件上传漏洞的相关讲解基于upload-labs靶场,搭建教程见文件上传漏洞靶机搭建教程 前端JS绕过 浏览器访问http://127.0.0.1/Pass-01/index.php进入靶机pass0 ...

最新文章

  1. Educational Codeforces Round 54
  2. 图灵奖得主Whitfield Diffie等一众大佬解读智能科学未来新发展 |“之识无界”大会...
  3. Hive记录-配置远程连接(JAVA/beeline)
  4. mysql在线修改表结构大数据表的风险与解决办法归纳
  5. otdr进行多种测试鸿蒙包括,华为联合南非MTN完成业界首个FTTH内置OTDR规模商用
  6. sc7cb27180 士兰微_供应 SILAN/士兰微 SC7A30E SC7A30 LGA10-3A 加速度计/三轴磁传感器
  7. spring security 参考 和 例子
  8. 视频压缩软件如何下载
  9. Overlay网络和VXLAN
  10. Fences -让你的桌面图标分组显示,成块状化
  11. 为什么要学习现代控制理论(机器人方向)?
  12. vue中input限制只能输入数字
  13. 微信浏览器apk下载的解决方案
  14. 计算机被限制压缩包打不开怎么办,【解决】压缩文件打不开,压缩文件损坏怎么修复?...
  15. linux查看当前网卡网速,Linux环境编程:获取网卡的实时网速
  16. 【小学信息技术教资面试】教案模板
  17. 【思维题 细节】loj#6042. 「雅礼集训 2017 Day7」跳蚤王国的宰相
  18. 什么事,是你当了领导才明白的?
  19. 别具一格的Flash时钟
  20. 搜集的动植物分类、检索网站

热门文章

  1. pod出现include of non-modular header inside framework module 错误
  2. 响应微信公众平台公众号菜单单击事件
  3. 推荐的 CSS 书写顺序
  4. (转)hibernate 注解的问题(异常)集合
  5. 爱情,这种高级玩意儿--一个码农的自白
  6. 简便的golang orm
  7. Python的代码结构
  8. 关于ES、PES、PS以及TS码流
  9. ffmpeg多线程转码
  10. 忘记虚拟机root密码的解决办法